diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-06-27 16:39:36 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-06-27 16:39:36 +0000 |
commit | 288b1880916021c5953889c37b6943b55dfa799d (patch) | |
tree | fc9ce77982f61d1f23123a42746e579260612e2f /apps/Gateway/Gateway | |
parent | a33e348666ecc525e080de43ecab0140d1115482 (diff) | |
download | ATCD-TAO-0_1_35.tar.gz |
This commit was manufactured by cvs2svn to create tag 'TAO-0_1_35'.TAO-0_1_35
Diffstat (limited to 'apps/Gateway/Gateway')
59 files changed, 0 insertions, 10248 deletions
diff --git a/apps/Gateway/Gateway/Channel.cpp b/apps/Gateway/Gateway/Channel.cpp deleted file mode 100644 index 99699a6ee87..00000000000 --- a/apps/Gateway/Gateway/Channel.cpp +++ /dev/null @@ -1,710 +0,0 @@ - -// $Id$ - -#include "Routing_Entry.h" -#include "Channel_Connector.h" - -// Convenient short-hands. -#define CO CONDITION -#define MU MUTEX - -// = The total number of bytes sent/received on this channel. -size_t -Channel::total_bytes (void) -{ - return this->total_bytes_; -} - -void -Channel::total_bytes (size_t bytes) -{ - this->total_bytes_ += bytes; -} - -Channel::Channel (ROUTING_TABLE *rt, - Channel_Connector *cc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH> (thr_mgr), - routing_table_ (rt), - id_ (-1), - total_bytes_ (0), - state_ (Channel::IDLE), - connector_ (cc), - timeout_ (1), - max_timeout_ (Channel::MAX_RETRY_TIMEOUT), - socket_queue_size_ (socket_queue_size) -{ -} - -// Set the associated channel. - -void -Channel::active (int a) -{ - this->state (a == 0 ? Channel::IDLE : Channel::ESTABLISHED); -} - -// Get the associated channel. - -int -Channel::active (void) -{ - return this->state () == Channel::ESTABLISHED; -} - -// Set the direction. - -void -Channel::direction (char d) -{ - this->direction_ = d; -} - -// Get the direction. - -char -Channel::direction (void) -{ - return this->direction_; -} - -// Sets the timeout delay. - -void -Channel::timeout (int to) -{ - if (to > this->max_timeout_) - to = this->max_timeout_; - - this->timeout_ = to; -} - -// Recalculate the current retry timeout delay using exponential -// backoff. Returns the original timeout (i.e., before the -// recalculation). - -int -Channel::timeout (void) -{ - int old_timeout = this->timeout_; - this->timeout_ *= 2; - - if (this->timeout_ > this->max_timeout_) - this->timeout_ = this->max_timeout_; - - return old_timeout; -} - -// Sets the max timeout delay. - -void -Channel::max_timeout (int mto) -{ - this->max_timeout_ = mto; -} - -// Gets the max timeout delay. - -int -Channel::max_timeout (void) -{ - return this->max_timeout_; -} - -// Restart connection asynchronously when timeout occurs. - -int -Channel::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) attempting to reconnect Channel %d with timeout = %d\n", - this->id (), this->timeout_)); - return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch); -} - -// Restart connection (blocking_semantics dicates whether we -// restart synchronously or asynchronously). - -int -Channel::reinitiate_connection (void) -{ - // Skip over deactivated descriptors. - if (this->get_handle () != -1) - { - // Make sure to close down peer to reclaim descriptor. - this->peer ().close (); - -#if 0 -// if (this->state () == FAILED) -// { - // Reinitiate timeout to improve reconnection time. -// this->timeout (1); -#endif - - ACE_DEBUG ((LM_DEBUG, - "(%t) scheduling reinitiation of Channel %d\n", - this->id ())); - - // Reschedule ourselves to try and connect again. - if (ACE_Service_Config::reactor ()->schedule_timer (this, 0, - this->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - return 0; -} - -// Handle shutdown of the Channel object. - -int -Channel::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) shutting down Channel %d on handle %d\n", - this->id (), this->get_handle ())); - - return this->reinitiate_connection (); -} - -// Set the state of the channel. - -void -Channel::state (Channel::State s) -{ - this->state_ = s; -} - -// Perform the first-time initiation of a connection to the peer. - -int -Channel::initialize_connection (void) -{ - this->state_ = Channel::ESTABLISHED; - - // Restart the timeout to 1. - this->timeout (1); - -#if defined (ASSIGN_ROUTING_ID) - // Action that sends the route id to the peerd. - - CONN_ID id = htons (this->id ()); - - ssize_t n = this->peer ().send ((const void *) &id, sizeof id); - - if (n != sizeof id) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - n == 0 ? "gatewayd has closed down unexpectedly" : "send"), -1); -#endif /* ASSIGN_ROUTING_ID */ - return 0; -} - -// Set the size of the socket queue. - -void -Channel::socket_queue_size (void) -{ - if (this->socket_queue_size_ > 0) - { - int option = this->direction_ == 'I' ? SO_RCVBUF : SO_SNDBUF; - - if (this->peer ().set_option (SOL_SOCKET, option, - &this->socket_queue_size_, sizeof (int)) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option")); - } -} - -// Upcall from the ACE_Acceptor::handle_input() that -// delegates control to our application-specific Channel. - -int -Channel::open (void *a) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) Channel's fd = %d\n", this->peer ().get_handle ())); - - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn on non-blocking I/O. - if (this->peer ().enable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call down to the base class to activate and register this handler. - if (this->ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH>::open (a) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1); - - return this->initialize_connection (); -} - -// Return the current state of the channel. - -Channel::State -Channel::state (void) -{ - return this->state_; -} - -void -Channel::id (CONN_ID id) -{ - this->id_ = id; -} - -CONN_ID -Channel::id (void) -{ - return this->id_; -} - -// Set the peer's address information. -int -Channel::bind (const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - CONN_ID id) -{ - this->remote_addr_ = remote_addr; - this->local_addr_ = local_addr; - this->id_ = id; - return 0; -} - -ACE_INET_Addr & -Channel::remote_addr (void) -{ - return this->remote_addr_; -} - -ACE_INET_Addr & -Channel::local_addr (void) -{ - return this->local_addr_; -} - -// Constructor sets the routing table pointer. - -Output_Channel::Output_Channel (ROUTING_TABLE *rt, - Channel_Connector *cc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : Channel (rt, cc, thr_mgr, socket_queue_size) -{ - this->direction_ = 'O'; - this->msg_queue ()->high_water_mark (Output_Channel::QUEUE_SIZE); -} - -// This method should be called only when the peer shuts down -// unexpectedly. This method simply marks the Channel as -// having failed so that handle_close () can reconnect. - -int -Output_Channel::handle_input (ACE_HANDLE) -{ - char buf[1]; - - this->state (Channel::FAILED); - - switch (this->peer ().recv (buf, sizeof buf)) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has failed unexpectedly for Output Channel %d\n", - this->id ()), -1); - /* NOTREACHED */ - case 0: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has shutdown unexpectedly for Output Channel %d\n", - this->id ()), -1); - /* NOTREACHED */ - default: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer is sending input on Output Channel %d\n", - this->id ()), -1); - /* NOTREACHED */ - } -} - -int -Output_Channel::svc (void) -{ - ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Output_Channel!\n"), -1); -} - -// Perform a non-blocking put() of message MB. If we are unable to -// send the entire message the remainder is re-queued at the *front* of -// the Message_List. - -int -Output_Channel::nonblk_put (ACE_Message_Block *mb) -{ - // Try to send the message. If we don't send it all (e.g., due to - // flow control), then re-queue the remainder at the head of the - // Message_List and ask the ACE_Reactor to inform us (via - // handle_output()) when it is possible to try again. - - ssize_t n; - - if ((n = this->send_peer (mb)) == -1) - { - // Things have gone wrong, let's try to close down and set up a new reconnection. - this->state (Channel::FAILED); - this->handle_close (); - return -1; - } - else if (errno == EWOULDBLOCK) // Didn't manage to send everything. - { - ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n", - this->get_handle (), this->id ())); - - // ACE_Queue in *front* of the list to preserve order. - if (this->msg_queue ()->enqueue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1); - - // Tell ACE_Reactor to call us back when we can send again. - else if (ACE_Service_Config::reactor ()-> - schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1); - return 0; - } - else - return n; -} - -int -Output_Channel::send_peer (ACE_Message_Block *mb) -{ - ssize_t n; - size_t len = mb->length (); - - if ((n = this->peer ().send (mb->rd_ptr (), len)) <= 0) - return errno == EWOULDBLOCK ? 0 : n; - else if (n < len) - // Re-adjust pointer to skip over the part we did send. - mb->rd_ptr (n); - else /* if (n == length) */ - { - // The whole message is sent, we can now safely deallocate the buffer. - // Note that this should decrement a reference count... - delete mb; - errno = 0; - } - this->total_bytes (n); - return n; -} - -// Finish sending a message when flow control conditions abate. -// This method is automatically called by the ACE_Reactor. - -int -Output_Channel::handle_output (ACE_HANDLE) -{ - ACE_Message_Block *mb = 0; - int status = 0; - - ACE_DEBUG ((LM_DEBUG, "(%t) in handle_output on handle %d\n", this->get_handle ())); - // The list had better not be empty, otherwise there's a bug! - - if (this->msg_queue ()->dequeue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1) - { - switch (this->nonblk_put (mb)) - { - case 0: // Partial send. - ACE_ASSERT (errno == EWOULDBLOCK); - // Didn't write everything this time, come back later... - break; - - case -1: - // Caller is responsible for freeing a ACE_Message_Block if failures occur. - delete mb; - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure")); - - /* FALLTHROUGH */ - default: // Sent the whole thing. - - // If we succeed in writing the entire message (or we did not fail - // due to EWOULDBLOCK) then check if there are more messages on the Message_List. - // If there aren't, tell the ACE_Reactor not to notify us anymore (at least - // until there are new messages queued up). - - if (this->msg_queue ()->is_empty ()) - { - ACE_DEBUG ((LM_DEBUG, "(%t) queueing deactivated on handle %d to routing id %d\n", - this->get_handle (), this->id ())); - - - if (ACE_Service_Config::reactor ()-> - cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup")); - } - } - } - else - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head")); - return 0; -} - -// Send a message to a peer (may queue if necessary). - -int -Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - if (this->msg_queue ()->is_empty ()) - // Try to send the message *without* blocking! - return this->nonblk_put (mb); - else - // If we have queued up messages due to flow control - // then just enqueue and return. - return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Constructor sets the routing table pointer and the connector pointer. - -Input_Channel::Input_Channel (ROUTING_TABLE *rt, - Channel_Connector *cc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : msg_frag_ (0), - Channel (rt, cc, thr_mgr, socket_queue_size) -{ - this->direction_ = 'I'; - this->msg_queue ()->high_water_mark (0); -} - -int -Input_Channel::put (ACE_Message_Block *, ACE_Time_Value *) -{ - ACE_ERROR_RETURN ((LM_ERROR, "(%t) put should not be called on Input_Channel!\n"), -1); -} - -int -Input_Channel::svc (void) -{ - ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Input_Channel!\n"), -1); -} - -// Receive a Peer message from peerd. Handles fragmentation. -// -// The routing message returned from recv_peer consists of two parts: -// 1. The Address part, contains the virtual routing id. -// 2. The Data part, which contains the actual data to be routed. -// -// The reason for having two parts is to shield the higher layers -// of software from knowledge of the message structure. - -int -Input_Channel::recv_peer (ACE_Message_Block *&route_addr) -{ - Peer_Message *peer_msg; - size_t len; - ssize_t n = 0; - ssize_t m = 0; - size_t offset = 0; - - if (this->msg_frag_ == 0) - // No existing fragment... - ACE_NEW_RETURN (this->msg_frag_, - ACE_Message_Block (sizeof (Peer_Message)), - -1); - - peer_msg = (Peer_Message *) this->msg_frag_->rd_ptr (); - - const ssize_t HEADER_SIZE = sizeof (Peer_Header); - ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length (); - - if (header_bytes_left_to_read > 0) - { - n = this->peer ().recv (this->msg_frag_->wr_ptr (), header_bytes_left_to_read); - - if (n == -1 /* error */ - || n == 0 /* EOF */) - { - ACE_ERROR ((LM_ERROR, "%p\n", "Recv error during header read ")); - ACE_DEBUG ((LM_DEBUG, "attempted to read %d\n", header_bytes_left_to_read)); - delete this->msg_frag_; - this->msg_frag_ = 0; - return n; - } - - // Bump the write pointer by the amount read. - this->msg_frag_->wr_ptr (n); - - // At this point we may or may not have the ENTIRE header. - if (this->msg_frag_->length () < HEADER_SIZE) - { - ACE_DEBUG ((LM_DEBUG, "Partial header received: only %d bytes\n", - this->msg_frag_->length ())); - // Notify the caller that we didn't get an entire message. - errno = EWOULDBLOCK; - return -1; - } - } - - // At this point there is a complete, valid header in msg_frag_ - len = sizeof peer_msg->buf_ + HEADER_SIZE - this->msg_frag_->length (); - - // Try to receive the remainder of the message - - switch (m = this->peer ().recv (peer_msg->buf_ + offset, len)) - { - case -1: - if (errno == EWOULDBLOCK) - { - // This shouldn't happen since the ACE_Reactor - // just triggered us to handle pending I/O! - ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n")); - errno = EWOULDBLOCK; - return -1; - } - else - /* FALLTHROUGH */; - - case 0: // Premature EOF. - delete this->msg_frag_; - this->msg_frag_ = 0; - return 0; - - default: - if (m != len) - // Re-adjust pointer to skip over the part we've read. - { - this->msg_frag_->wr_ptr (m); - errno = EWOULDBLOCK; - return -1; // Inform caller that we didn't get the whole message. - } - else - { - // Set the write pointer at 1 past the end of the message. - this->msg_frag_->wr_ptr (m); - - // Set the read pointer to the beginning of the message. - this->msg_frag_->rd_ptr (this->msg_frag_->base ()); - - // Allocate a routing message header and chain the data portion - // onto its continuation field. - ACE_NEW_RETURN (route_addr, - ACE_Message_Block (sizeof (Peer_Addr), - ACE_Message_Block::MB_PROTO, - this->msg_frag_), - -1); - - Peer_Addr peer_addr (this->id (), peer_msg->header_.routing_id_, 0); - // Copy the routing address from the Peer_Message into routing_addr. - route_addr->copy ((char *) &peer_addr, sizeof (Peer_Addr)); - - // Reset the pointer to indicate we've got an entire message. - this->msg_frag_ = 0; - } - this->total_bytes (m + n); -#if defined (VERBOSE) - ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s", - peer_addr.conn_id_, peer_msg->header_.routing_id_, peer_msg->header_.len_, - peer_msg->header_.len_, peer_msg->buf_)); -#else - ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n", - peer_msg->header_.routing_id_, peer_msg->header_.len_, this->total_bytes ())); -#endif - return m + n; - } -} - -// Receive various types of input (e.g., Peer message from the -// gatewayd, as well as stdio). - -int -Input_Channel::handle_input (ACE_HANDLE) -{ - ACE_Message_Block *route_addr = 0; - - switch (this->recv_peer (route_addr)) - { - case 0: - // Note that a peer should never initiate a shutdown. - this->state (Channel::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has closed down unexpectedly for Input Channel %d\n", - this->id ()), -1); - /* NOTREACHED */ - case -1: - if (errno == EWOULDBLOCK) - // A short-read, we'll come back and finish it up later on! - return 0; - else // A weird problem occurred, shut down and start again. - { - this->state (Channel::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Channel %d\n", - "Peer has failed unexpectedly", - this->id ()), -1); - } - /* NOTREACHED */ - default: - return this->route_message (route_addr); - } -} - -// Route a message to its appropriate destination. - -int -Input_Channel::route_message (ACE_Message_Block *route_addr) -{ - // We got a valid message, so determine its virtual routing id, - // which is stored in the first of the two message blocks chained together. - - Peer_Addr *routing_key = (Peer_Addr *) route_addr->rd_ptr (); - - // Skip over the address portion. - const ACE_Message_Block *const data = route_addr->cont (); - - // RE points to the routing entry located for this routing id. - Routing_Entry *re = 0; - - if (this->routing_table_->find (*routing_key, re) != -1) - { - // Check to see if there are any destinations. - if (re->destinations ()->size () == 0) - ACE_DEBUG ((LM_WARNING, - "there are no active destinations for this message currently\n")); - - else // There are destinations, so forward the message. - { - Routing_Entry::ENTRY_SET *esp = re->destinations (); - Routing_Entry::ENTRY_ITERATOR si (*esp); - - for (Channel **channel = 0; si.next (channel) != 0; si.advance ()) - { - // Only process active channels. - if ((*channel)->active ()) - { - // Clone the message portion (should be doing reference counting here...) - ACE_Message_Block *newmsg = data->clone (); - - ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ())); - - if ((*channel)->put (newmsg) == -1) - { - if (errno == EWOULDBLOCK) // The queue has filled up! - ACE_ERROR ((LM_ERROR, "(%t) %p\n", - "gateway is flow controlled, so we're dropping messages")); - else - ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n", - "put", (*channel)->id ())); - - // Caller is responsible for freeing a ACE_Message_Block if failures occur. - delete newmsg; - } - } - } - // Will become superfluous once we have reference counting... - delete route_addr; - return 0; - } - } - delete route_addr; - // Failure return. - ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n", - routing_key->conn_id_, routing_key->logical_id_, routing_key->payload_)); - return 0; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Map_Manager<Peer_Addr, Routing_Entry *, MUTEX>; -template class ACE_Map_Iterator<Peer_Addr, Routing_Entry *, MUTEX>; -template class ACE_Map_Entry<Peer_Addr, Routing_Entry *>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/apps/Gateway/Gateway/Channel.h b/apps/Gateway/Gateway/Channel.h deleted file mode 100644 index 339716bc55a..00000000000 --- a/apps/Gateway/Gateway/Channel.h +++ /dev/null @@ -1,280 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Channel.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CHANNEL) -#define _CHANNEL - -#include "ace/Service_Config.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_Connector.h" -#include "ace/Svc_Handler.h" -#include "Routing_Table.h" -#include "Routing_Entry.h" -#include "Peer_Message.h" - -// The following typedefs are used in order to parameterize the -// synchronization policies without changing the source code! - -// If we don't have threads then use the single-threaded synchronization. -#if !defined (ACE_HAS_THREADS) -#define SYNCH ACE_NULL_SYNCH -typedef ACE_Null_Mutex MUTEX; -#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM -#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR -#else /* ACE_HAS_THREADS */ - -// Select communication mechanisms. -#if 0 // defined (ACE_HAS_TLI) -// Note that due to inconsistencies between the semantics of sockets -// and TLI with respect to establishing non-blocking connections it's -// not a good idea to use TLI... -#include "ace/TLI_Connector.h" -#define CHANNEL_PEER_STREAM ACE_TLI_STREAM -#define CHANNEL_PEER_CONNECTOR ACE_TLI_CONNECTOR -#else -#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM -#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR -#endif /* 0 */ - -// Note that we only need to make the ACE_Task thread-safe if we -// are using the multi-threaded Thr_Output_Channel... -#if defined (USE_OUTPUT_MT) -#define SYNCH ACE_MT_SYNCH -#else -#define SYNCH ACE_NULL_SYNCH -#endif /* USE_OUTPUT_MT || USE_INPUT_MT */ - -// Note that we only need to make the ACE_Map_Manager thread-safe if -// we are using the multi-threaded Thr_Input_Channel... -#if defined (USE_INPUT_MT) -typedef ACE_RW_Mutex MUTEX; -#else -typedef ACE_Null_Mutex MUTEX; -#endif /* USE_INPUT_MT */ -#endif /* ACE_HAS_THREADS */ - -// Typedef for the routing table. -typedef Routing_Table<Peer_Addr, Routing_Entry, MUTEX> - ROUTING_TABLE; - -// Forward declaration. -class Channel_Connector; - -class Channel : public ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH> - // = TITLE - // Channel contains info about connection state and addressing. - // - // = DESCRIPTION - // The Channel classes process messages sent from the peers to the - // gateway. These classes works as follows: - // - // 1. Channel_Connector creates a number of connections with the set of - // peers specified in a configuration file. - // - // 2. For each peer that connects successfully, Channel_Connector - // creates an Channel object. Each object assigns a unique routing - // id to its associated peer. The Channels are used by gatewayd - // that to receive, route, and forward messages from source peer(s) - // to destination peer(s). -{ -public: - Channel (ROUTING_TABLE *, - Channel_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - - virtual int open (void * = 0); - // Initialize and activate a single-threaded Channel (called by - // ACE_Connector::handle_output()). - - int bind (const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - CONN_ID); - // Set the peer's addressing and routing information. - - ACE_INET_Addr &remote_addr (void); - // Returns the peer's routing address. - - ACE_INET_Addr &local_addr (void); - // Returns our local address. - - // = Set/get routing id. - CONN_ID id (void); - void id (CONN_ID); - - // = Set/get the current state of the Channel. - enum State - { - IDLE = 1, // Prior to initialization. - CONNECTING, // During connection establishment. - ESTABLISHED, // Channel is established and active. - DISCONNECTING, // Channel is in the process of connecting. - FAILED // Channel has failed. - }; - - // = Set/get the current state. - State state (void); - void state (State); - - // = Set/get the current retry timeout delay. - int timeout (void); - void timeout (int); - - // = Set/get the maximum retry timeout delay. - int max_timeout (void); - void max_timeout (int); - - // = Set/get Channel activity status. - int active (void); - void active (int); - - // = Set/get direction (necessary for error checking). - char direction (void); - void direction (char); - - // = The total number of bytes sent/received on this channel. - size_t total_bytes (void); - void total_bytes (size_t bytes); - // Increment count by <bytes>. - - virtual int handle_timeout (const ACE_Time_Value &, const void *arg); - // Perform timer-based Channel reconnection. - -protected: - enum - { - MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout. - }; - - int initialize_connection (void); - // Perform the first-time initiation of a connection to the peer. - - int reinitiate_connection (void); - // Reinitiate a connection asynchronously when peers fail. - - void socket_queue_size (void); - // Set the socket queue size. - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK); - // Perform Channel termination. - - ROUTING_TABLE *routing_table_; - // Pointer to table that maps a Peer_Addr - // to a Set of Channel *'s for output. - - ACE_INET_Addr remote_addr_; - // Address of peer. - - ACE_INET_Addr local_addr_; - // Address of us. - - CONN_ID id_; - // The assigned routing ID of this entry. - - size_t total_bytes_; - // The total number of bytes sent/received on this channel. - - State state_; - // The current state of the channel. - - Channel_Connector *connector_; - // Back pointer to Channel_Connector to reestablish broken - // connections. - - int timeout_; - // Amount of time to wait between reconnection attempts. - - int max_timeout_; - // Maximum amount of time to wait between reconnection attempts. - - char direction_; - // Indicates which direction data flows through the channel ('O' == - // output and 'I' == input). - - int socket_queue_size_; - // Size of the socket queue (0 means "use default"). -}; - -class Input_Channel : public Channel - // = TITLE - // Handle reception of Peer messages arriving as events. -{ -public: - Input_Channel (ROUTING_TABLE *, - Channel_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - // Constructor sets the routing table pointer. - - virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - // Receive and process peer messages. - -protected: - virtual int recv_peer (ACE_Message_Block *&); - // Receive a message from a peer. - - int route_message (ACE_Message_Block *); - // Action that receives messages from peerd. - - ACE_Message_Block *msg_frag_; - // Keep track of message fragment to handle non-blocking recv's from - // peers. - - virtual int svc (void); - // This method is not used since we are single-threaded. - -private: - virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0); - // This methods should not be called to handle input. -}; - -class Output_Channel : public Channel - // = TITLE - // Handle transmission of messages to other Peers using a - // single-threaded approach. -{ -public: - Output_Channel (ROUTING_TABLE *, - Channel_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send a message to a gateway (may be queued if necessary). - -protected: - // = We'll allow up to 16 megabytes to be queued per-output - // channel. - enum {QUEUE_SIZE = 1024 * 1024 * 16}; - - virtual int handle_input (ACE_HANDLE); - // Receive and process shutdowns from peer. - - virtual int handle_output (ACE_HANDLE); - // Finish sending a message when flow control conditions abate. - - int nonblk_put (ACE_Message_Block *mb); - // Perform a non-blocking put(). - - virtual int send_peer (ACE_Message_Block *); - // Send a message to a peer. - - virtual int svc (void); - // This method is not used since we are single-threaded. -}; - -#endif /* _CHANNEL */ diff --git a/apps/Gateway/Gateway/Channel_Connector.cpp b/apps/Gateway/Gateway/Channel_Connector.cpp deleted file mode 100644 index a5394e8b013..00000000000 --- a/apps/Gateway/Gateway/Channel_Connector.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include "Channel_Connector.h" -// $Id$ - - -Channel_Connector::Channel_Connector (void) -{ -} - -// Override the connection-failure method to add timer support. -// Note that these timers perform "expoential backoff" to -// avoid rapidly trying to reestablish connections when a link -// goes down. - -int -Channel_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask) -{ - ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>::AST *stp = 0; - - // Locate the ACE_Svc_Handler corresponding to the socket descriptor. - if (this->handler_map_.find (sd, stp) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n", - sd, "find"), -1); - - Channel *channel = stp->svc_handler (); - - // Schedule a reconnection request at some point in the future - // (note that channel uses an exponential backoff scheme). - if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0, - channel->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - return 0; -} - -// Initiate (or reinitiate) a connection to the Channel. - -int -Channel_Connector::initiate_connection (Channel *channel, - ACE_Synch_Options &synch_options) -{ - char buf[MAXHOSTNAMELEN]; - - // Mark ourselves as idle so that the various iterators - // will ignore us until we are reconnected. - channel->state (Channel::IDLE); - - if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1 - || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "can't obtain peer's address"), -1); - - // Try to connect to the Peer. - - if (this->connect (channel, channel->remote_addr (), - synch_options, channel->local_addr ()) == -1) - { - if (errno != EWOULDBLOCK) - { - channel->state (Channel::FAILED); - ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n", - "connect", buf)); - - // Reschedule ourselves to try and connect again. - if (synch_options[ACE_Synch_Options::USE_REACTOR]) - { - if (ACE_Service_Config::reactor ()->schedule_timer - (channel, 0, channel->timeout ()) == 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - else - // Failures on synchronous connects are reported as errors - // so that the caller can decide how to proceed. - return -1; - } - else - { - channel->state (Channel::CONNECTING); - ACE_DEBUG ((LM_DEBUG, - "(%t) in the process of connecting %s to %s\n", - synch_options[ACE_Synch_Options::USE_REACTOR] - ? "asynchronously" : "synchronously", buf)); - } - } - else - { - channel->state (Channel::ESTABLISHED); - ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n", - buf, channel->get_handle ())); - } - return 0; -} diff --git a/apps/Gateway/Gateway/Channel_Connector.h b/apps/Gateway/Gateway/Channel_Connector.h deleted file mode 100644 index 3e27f37355a..00000000000 --- a/apps/Gateway/Gateway/Channel_Connector.h +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Channel_Connector.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CHANNEL_CONNECTOR) -#define _CHANNEL_CONNECTOR - -#include "ace/Connector.h" -#include "Thr_Channel.h" - -class Channel_Connector : public ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR> - // = TITLE - // A concrete factory class that setups connections to peerds - // and produces a new Channel object to do the dirty work... -{ -public: - Channel_Connector (void); - - // Initiate (or reinitiate) a connection on the Channel. - int initiate_connection (Channel *, - ACE_Synch_Options & = ACE_Synch_Options::synch); - -protected: - // Override the connection-failure method to add timer support. - virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask); -}; - -#endif /* _CHANNEL_CONNECTOR */ diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp b/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp deleted file mode 100644 index b76d4191517..00000000000 --- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp +++ /dev/null @@ -1,632 +0,0 @@ -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "Event_Channel.h" -#include "Concrete_Connection_Handlers.h" - -Consumer_Handler::Consumer_Handler (const Connection_Config_Info &pci) - : Connection_Handler (pci) -{ - this->connection_role_ = 'C'; - this->msg_queue ()->high_water_mark (Options::instance ()->max_queue_size ()); -} - -// This method should be called only when the Consumer shuts down -// unexpectedly. This method simply marks the Connection_Handler as -// having failed so that handle_close () can reconnect. - -int -Consumer_Handler::handle_input (ACE_HANDLE) -{ - char buf[1]; - - this->state (Connection_Handler::FAILED); - - switch (this->peer ().recv (buf, sizeof buf)) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has failed unexpectedly for Consumer_Handler %d\n", - this->connection_id ()), - -1); - /* NOTREACHED */ - case 0: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has shutdown unexpectedly for Consumer_Handler %d\n", - this->connection_id ()), - -1); - /* NOTREACHED */ - default: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Consumer is erroneously sending input to Consumer_Handler %d\n", - this->connection_id ()), - -1); - /* NOTREACHED */ - } -} - -// Perform a non-blocking put() of event. If we are unable to send -// the entire event the remainder is re-queued at the *front* of the -// Event_List. - -int -Consumer_Handler::nonblk_put (ACE_Message_Block *event) -{ - // Try to send the event. If we don't send it all (e.g., due to - // flow control), then re-queue the remainder at the head of the - // Event_List and ask the ACE_Reactor to inform us (via - // handle_output()) when it is possible to try again. - - ssize_t n = this->send (event); - - if (n == -1) - { - // Things have gone wrong, let's try to close down and set up a - // new reconnection by calling handle_close(). - this->state (Connection_Handler::FAILED); - this->handle_close (); - return -1; - } - else if (errno == EWOULDBLOCK) // Didn't manage to send everything. - { - ACE_DEBUG ((LM_DEBUG, - "(%t) queueing activated on handle %d to routing id %d\n", - this->get_handle (), - this->connection_id ())); - - // ACE_Queue in *front* of the list to preserve order. - if (this->msg_queue ()->enqueue_head - (event, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - "enqueue_head"), - -1); - - // Tell ACE_Reactor to call us back when we can send again. - else if (ACE_Reactor::instance ()->schedule_wakeup - (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - "schedule_wakeup"), - -1); - return 0; - } - else - return n; -} - -ssize_t -Consumer_Handler::send (ACE_Message_Block *event) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) sending %d bytes to Consumer %d\n", - event->length (), - this->connection_id ())); - - ssize_t len = event->length (); - ssize_t n = this->peer ().send (event->rd_ptr (), len); - - if (n <= 0) - return errno == EWOULDBLOCK ? 0 : n; - else if (n < len) - // Re-adjust pointer to skip over the part we did send. - event->rd_ptr (n); - else // if (n == length) - { - // The whole event is sent, we now decrement the reference count - // (which deletes itself with it reaches 0). - event->release (); - errno = 0; - } - this->total_bytes (n); - return n; -} - -// Finish sending an event when flow control conditions abate. -// This method is automatically called by the ACE_Reactor. - -int -Consumer_Handler::handle_output (ACE_HANDLE) -{ - ACE_Message_Block *event = 0; - - ACE_DEBUG ((LM_DEBUG, - "(%t) in handle_output on handle %d\n", - this->get_handle ())); - - // The list had better not be empty, otherwise there's a bug! - - if (this->msg_queue ()->dequeue_head - (event, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1) - { - switch (this->nonblk_put (event)) - { - case 0: // Partial send. - ACE_ASSERT (errno == EWOULDBLOCK); - // Didn't write everything this time, come back later... - break; - - case -1: - // We are responsible for releasing an ACE_Message_Block if - // failures occur. - event->release (); - ACE_ERROR ((LM_ERROR, - "(%t) %p\n", - "transmission failure")); - - /* FALLTHROUGH */ - default: // Sent the whole thing. - - // If we succeed in writing the entire event (or we did not - // fail due to EWOULDBLOCK) then check if there are more - // events on the Message_Queue. If there aren't, tell the - // ACE_Reactor not to notify us anymore (at least until - // there are new events queued up). - - if (this->msg_queue ()->is_empty ()) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) queueing deactivated on handle %d to routing id %d\n", - this->get_handle (), - this->connection_id ())); - - - if (ACE_Reactor::instance ()->cancel_wakeup - (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR ((LM_ERROR, - "(%t) %p\n", - "cancel_wakeup")); - } - } - } - else - ACE_ERROR ((LM_ERROR, - "(%t) %p\n", - "dequeue_head")); - return 0; -} - -// Send an event to a Consumer (may queue if necessary). - -int -Consumer_Handler::put (ACE_Message_Block *event, - ACE_Time_Value *) -{ - if (this->msg_queue ()->is_empty ()) - // Try to send the event *without* blocking! - return this->nonblk_put (event); - else - // If we have queued up events due to flow control then just - // enqueue and return. - return this->msg_queue ()->enqueue_tail - (event, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -Supplier_Handler::Supplier_Handler (const Connection_Config_Info &pci) - : Connection_Handler (pci), - msg_frag_ (0) -{ - this->connection_role_ = 'S'; - this->msg_queue ()->high_water_mark (0); -} - -// Receive an Event from a Supplier. Handles fragmentation. -// -// The event returned from recv consists of two parts: -// -// 1. The Address part, contains the "virtual" routing id. -// -// 2. The Data part, which contains the actual data to be forwarded. -// -// The reason for having two parts is to shield the higher layers -// of software from knowledge of the event structure. - -int -Supplier_Handler::recv (ACE_Message_Block *&forward_addr) -{ - if (this->msg_frag_ == 0) - // No existing fragment... - ACE_NEW_RETURN (this->msg_frag_, - ACE_Message_Block (sizeof (Event), - ACE_Message_Block::MB_DATA, - 0, - 0, - 0, - Options::instance ()->locking_strategy ()), - -1); - - Event *event = (Event *) this->msg_frag_->rd_ptr (); - ssize_t header_received = 0; - - const size_t HEADER_SIZE = sizeof (Event_Header); - ssize_t header_bytes_left_to_read = - HEADER_SIZE - this->msg_frag_->length (); - - if (header_bytes_left_to_read > 0) - { - header_received = this->peer ().recv - (this->msg_frag_->wr_ptr (), header_bytes_left_to_read); - - if (header_received == -1 /* error */ - || header_received == 0 /* EOF */) - { - ACE_ERROR ((LM_ERROR, "%p\n", - "Recv error during header read ")); - ACE_DEBUG ((LM_DEBUG, - "attempted to read %d\n", - header_bytes_left_to_read)); - this->msg_frag_ = this->msg_frag_->release (); - return header_received; - } - - // Bump the write pointer by the amount read. - this->msg_frag_->wr_ptr (header_received); - - // At this point we may or may not have the ENTIRE header. - if (this->msg_frag_->length () < HEADER_SIZE) - { - ACE_DEBUG ((LM_DEBUG, - "Partial header received: only %d bytes\n", - this->msg_frag_->length ())); - // Notify the caller that we didn't get an entire event. - errno = EWOULDBLOCK; - return -1; - } - - // Convert the header into host byte order so that we can access - // it directly without having to repeatedly muck with it... - event->header_.decode (); - - if (event->header_.len_ > ACE_INT32 (sizeof event->data_)) - { - // This data_ payload is too big! - errno = EINVAL; - ACE_DEBUG ((LM_DEBUG, - "Data payload is too big (%d bytes)\n", - event->header_.len_)); - return -1; - } - - } - - // At this point there is a complete, valid header in Event. Now we - // need to get the event payload. Due to incomplete reads this may - // not be the first time we've read in a fragment for this message. - // We account for this here. Note that the first time in here - // msg_frag_->wr_ptr() will point to event->data_. Every time we do - // a successful fragment read, we advance wr_ptr(). Therefore, by - // subtracting how much we've already read from the - // event->header_.len_ we complete the data_bytes_left_to_read... - - ssize_t data_bytes_left_to_read = - ssize_t (event->header_.len_ - (msg_frag_->wr_ptr () - event->data_)); - - ssize_t data_received = - this->peer ().recv (this->msg_frag_->wr_ptr (), data_bytes_left_to_read); - - // Try to receive the remainder of the event. - - switch (data_received) - { - case -1: - if (errno == EWOULDBLOCK) - // This might happen if only the header came through. - return -1; - else - /* FALLTHROUGH */; - - case 0: // Premature EOF. - this->msg_frag_ = this->msg_frag_->release (); - return 0; - - default: - // Set the write pointer at 1 past the end of the event. - this->msg_frag_->wr_ptr (data_received); - - if (data_received != data_bytes_left_to_read) - { - errno = EWOULDBLOCK; - // Inform caller that we didn't get the whole event. - return -1; - } - else - { - // Set the read pointer to the beginning of the event. - this->msg_frag_->rd_ptr (this->msg_frag_->base ()); - - // Allocate an event forwarding header and chain the data - // portion onto its continuation field. - forward_addr = new ACE_Message_Block (sizeof (Event_Key), - ACE_Message_Block::MB_PROTO, - this->msg_frag_, - 0, - 0, - Options::instance ()->locking_strategy ()); - if (forward_addr == 0) - { - this->msg_frag_ = this->msg_frag_->release (); - errno = ENOMEM; - return -1; - } - - Event_Key event_addr (this->connection_id (), - event->header_.type_); - // Copy the forwarding address from the Event_Key into - // forward_addr. - forward_addr->copy ((char *) &event_addr, sizeof (Event_Key)); - - // Reset the pointer to indicate we've got an entire event. - this->msg_frag_ = 0; - } - - this->total_bytes (data_received + header_received); - ACE_DEBUG ((LM_DEBUG, - "(%t) connection id = %d, cur len = %d, total bytes read = %d\n", - event->header_.connection_id_, - event->header_.len_, - data_received + header_received)); - if (Options::instance ()->enabled (Options::VERBOSE)) - ACE_DEBUG ((LM_DEBUG, - "data_ = %*s\n", - event->header_.len_ - 2, - event->data_)); - - // Encode before returning so that we can set things out in - // network byte order. - event->header_.encode (); - return data_received + header_received; - } -} - -// Receive various types of input (e.g., Peer event from the -// gatewayd, as well as stdio). - -int -Supplier_Handler::handle_input (ACE_HANDLE) -{ - ACE_Message_Block *event_key = 0; - - switch (this->recv (event_key)) - { - case 0: - // Note that a peer shouldn't initiate a shutdown by closing the - // connection. Therefore, the peer must have crashed, so we'll - // need to bail out here and let the higher layers reconnect. - this->state (Connection_Handler::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has closed down unexpectedly for Input Connection_Handler %d\n", - this->connection_id ()), - -1); - /* NOTREACHED */ - case -1: - if (errno == EWOULDBLOCK) - // A short-read, we'll come back and finish it up later on! - return 0; - else // A weird problem occurred, shut down and start again. - { - this->state (Connection_Handler::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Connection_Handler %d\n", - "Peer has failed unexpectedly", - this->connection_id ()), - -1); - } - /* NOTREACHED */ - default: - // Route messages to Consumers. - return this->process (event_key); - } -} - -// This delegates to the <Event_Channel> to do the actual processing. -// Typically, this forwards the event to its appropriate Consumer(s). - -int -Supplier_Handler::process (ACE_Message_Block *event_key) -{ - return this->event_channel_->put (event_key); -} - -Thr_Consumer_Handler::Thr_Consumer_Handler (const Connection_Config_Info &pci) - : Consumer_Handler (pci) -{ -} - -// This method should be called only when the Consumer shuts down -// unexpectedly. This method marks the Connection_Handler as having failed -// and deactivates the ACE_Message_Queue (to wake up the thread -// blocked on <dequeue_head> in svc()). -// Thr_Output_Handler::handle_close () will eventually try to -// reconnect... - -int -Thr_Consumer_Handler::handle_input (ACE_HANDLE h) -{ - // Call down to the <Consumer_Handler> to handle this first. - this->Consumer_Handler::handle_input (h); - - ACE_Reactor::instance ()->remove_handler - (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - return 0; -} - -// Initialize the threaded Consumer_Handler object and spawn a new -// thread. - -int -Thr_Consumer_Handler::open (void *) -{ - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call back to the <Event_Channel> to complete our initialization. - else if (this->event_channel_->complete_connection_connection (this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1); - - // Register ourselves to receive input events (which indicate that - // the Consumer has shut down unexpectedly). - else if (ACE_Reactor::instance ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // events to Consumers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Queue up an event for transmission (must not block since -// Supplier_Handlers may be single-threaded). - -int -Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - // Perform non-blocking enqueue, i.e., if <msg_queue> is full - // *don't* block! - return this->msg_queue ()->enqueue_tail - (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Transmit events to the peer. Note the simplification resulting -// from the use of threads, compared with the Reactive solution. - -int -Thr_Consumer_Handler::svc (void) -{ - - for (;;) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Thr_Consumer_Handler's handle = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread it is OK to block on - // output. - - for (ACE_Message_Block *mb = 0; - this->msg_queue ()->dequeue_head (mb) != -1; - ) - if (this->send (mb) == -1) - ACE_ERROR ((LM_ERROR, - "(%t) %p\n", - "send failed")); - - ACE_ASSERT (errno == ESHUTDOWN); - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Consumer_Handler %d on handle %d\n", - this->connection_id (), - this->get_handle ())); - - this->peer ().close (); - - // Re-establish the connection, using expoential backoff. - for (this->timeout (1); - // Default is to reconnect synchronously. - this->event_channel_->initiate_connection_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - - ACE_OS::sleep (tv); - } - } - - /* NOTREACHED */ - return 0; -} - -Thr_Supplier_Handler::Thr_Supplier_Handler (const Connection_Config_Info &pci) - : Supplier_Handler (pci) -{ -} - -int -Thr_Supplier_Handler::open (void *) -{ - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call back to the <Event_Channel> to complete our initialization. - else if (this->event_channel_->complete_connection_connection (this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // events to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Receive events from a Peer in a separate thread (note reuse of -// existing code!). - -int -Thr_Supplier_Handler::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Thr_Supplier_Handler's handle = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread and processes events - // for one connection it is OK to call down to the - // <Supplier_Handler::handle_input> method, which blocks on - // input. - - while (this->Supplier_Handler::handle_input () != -1) - continue; - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Supplier_Handler %d on handle %d\n", - this->connection_id (), - this->get_handle ())); - - this->peer ().close (); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - - // Re-establish the connection, using expoential backoff. - for (this->timeout (1); - // Default is to reconnect synchronously. - this->event_channel_->initiate_connection_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - ACE_OS::sleep (tv); - } - } - ACE_NOTREACHED(return 0); -} diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h b/apps/Gateway/Gateway/Concrete_Connection_Handlers.h deleted file mode 100644 index ca36e3f517e..00000000000 --- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Concrete_Connection_Handlers.h -// -// = DESCRIPTION -// These are all the subclasses of Connection_Handler that define the -// appropriate threaded/reactive Consumer/Supplier behavior. -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (CONCRETE_CONNECTION_HANDLER) -#define CONCRETE_CONNECTION_HANDLER - -#include "Connection_Handler.h" - -class Supplier_Handler : public Connection_Handler -{ - // = TITLE - // Handles reception of Events from Suppliers. - // - // = DESCRIPTION - // Performs framing and error checking on Events. Intended to - // run reactively, i.e., in one thread of control using a - // Reactor for demuxing and dispatching. -public: - // = Initialization method. - Supplier_Handler (const Connection_Config_Info &); - -protected: - // = All the following methods are upcalls, so they can be protected. - - virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - // Receive and process peer events. - - virtual int recv (ACE_Message_Block *&); - // Receive an event from a Supplier. - - int process (ACE_Message_Block *event); - // This delegates to the <Event_Channel> to do the actual - // processing. Typically, it forwards the <event> to its - // appropriate Consumer. - - ACE_Message_Block *msg_frag_; - // Keep track of event fragment to handle non-blocking recv's from - // Suppliers. -}; - -class Consumer_Handler : public Connection_Handler -{ - // = TITLE - // Handles transmission of events to Consumers. - // - // = DESCRIPTION - // Performs queueing and error checking. Intended to run - // reactively, i.e., in one thread of control using a Reactor - // for demuxing and dispatching. Also uses a Reactor to handle - // flow controlled output connections. -public: - // = Initialization method. - Consumer_Handler (const Connection_Config_Info &); - - virtual int put (ACE_Message_Block *event, - ACE_Time_Value * = 0); - // Send an event to a Consumer (may be queued if necessary). - -protected: - virtual int handle_output (ACE_HANDLE); - // Finish sending event when flow control conditions abate. - - int nonblk_put (ACE_Message_Block *mb); - // Perform a non-blocking put(). - - virtual ssize_t send (ACE_Message_Block *); - // Send an event to a Consumer. - - virtual int handle_input (ACE_HANDLE); - // Receive and process shutdowns from a Consumer. -}; - -class Thr_Consumer_Handler : public Consumer_Handler -{ - // = TITLE - // Runs each <Consumer_Handler> in a separate thread. -public: - Thr_Consumer_Handler (const Connection_Config_Info &); - - virtual int open (void *); - // Initialize the threaded Consumer_Handler object and spawn a new - // thread. - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send a message to a peer. - -protected: - virtual int handle_input (ACE_HANDLE); - // Called when Peer shutdown unexpectedly. - - virtual int svc (void); - // Transmit peer messages. -}; - -class Thr_Supplier_Handler : public Supplier_Handler -{ - // = TITLE - // Runs each <Supplier_Handler> in a separate thread. -public: - Thr_Supplier_Handler (const Connection_Config_Info &pci); - - virtual int open (void *); - // Initialize the object and spawn a new thread. - -protected: - virtual int svc (void); - // Transmit peer messages. -}; - -#endif /* CONCRETE_CONNECTION_HANDLER */ diff --git a/apps/Gateway/Gateway/Concurrency_Strategies.h b/apps/Gateway/Gateway/Concurrency_Strategies.h deleted file mode 100644 index 28e59a4b2e6..00000000000 --- a/apps/Gateway/Gateway/Concurrency_Strategies.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Concurrency_strategies.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONCURRENCY_STRATEGIES) -#define _CONCURRENCY_STRATEGIES - -#include "ace/Synch.h" - -// The following typedefs are used in order to parameterize the -// synchronization policies without changing the source code! - -// If we don't have threads then use the single-threaded synchronization. -#if !defined (ACE_HAS_THREADS) -#define SYNCH_STRATEGY ACE_NULL_SYNCH -typedef ACE_Null_Mutex MAP_MUTEX; -#else /* ACE_HAS_THREADS */ - -// Note that we only need to make the ACE_Task thread-safe if we are -// using the multi-threaded Thr_Consumer_Proxy... -#if defined (USE_OUTPUT_MT) -#define SYNCH_STRATEGY ACE_MT_SYNCH -#else -#define SYNCH_STRATEGY ACE_NULL_SYNCH -#endif /* USE_OUTPUT_MT || USE_INPUT_MT */ - -// Note that we only need to make the ACE_Map_Manager thread-safe if -// we are using the multi-threaded Thr_Supplier_Proxy. In this -// case, we use an RW_Mutex since we'll lookup Consumers far more -// often than we'll update them. -#if defined (USE_INPUT_MT) -typedef ACE_RW_Mutex MAP_MUTEX; -#else -typedef ACE_Null_Mutex MAP_MUTEX; -#endif /* USE_INPUT_MT */ -#endif /* ACE_HAS_THREADS */ - -// = Forward decls -class Thr_Consumer_Proxy; -class Thr_Supplier_Proxy; -class Consumer_Proxy; -class Supplier_Proxy; - -#if defined (ACE_HAS_THREADS) && (defined (USE_OUTPUT_MT) || defined (USE_INPUT_MT)) -#if defined (USE_OUTPUT_MT) -typedef Thr_Consumer_Proxy CONSUMER_PROXY; -#else -typedef Consumer_Proxy CONSUMER_PROXY; -#endif /* USE_OUTPUT_MT */ - -#if defined (USE_INPUT_MT) -typedef Thr_Supplier_Proxy SUPPLIER_PROXY; -#else -typedef Supplier_Proxy SUPPLIER_PROXY; -#endif /* USE_INPUT_MT */ -#else -// Instantiate a non-multi-threaded Gateway. -typedef Supplier_Proxy SUPPLIER_PROXY; -typedef Consumer_Proxy CONSUMER_PROXY; -#endif /* ACE_HAS_THREADS */ - -#endif /* _CONCURRENCY_STRATEGIES */ diff --git a/apps/Gateway/Gateway/Config_Files.cpp b/apps/Gateway/Gateway/Config_Files.cpp deleted file mode 100644 index 5be544d1863..00000000000 --- a/apps/Gateway/Gateway/Config_Files.cpp +++ /dev/null @@ -1,220 +0,0 @@ -// $Id$ - -#define ACE_BUILD_SVC_DLL - -#include "Config_Files.h" -#include "Options.h" - -// This fixes a nasty bug with cfront-based compilers (like -// Centerline). -typedef FP::Return_Type FP_RETURN_TYPE; - -FP_RETURN_TYPE -Consumer_Config_File_Parser::read_entry (Consumer_Config_Info &entry, - int &line_number) -{ - FP_RETURN_TYPE result; - - // Increment the line count. - line_number++; - - // Ignore comments, check for EOF and EOLINE if this succeeds, we - // have our connection id. - - while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS) - if (result == FP::EOFILE) - return FP::EOFILE; - else if (result == FP::EOLINE - || result == FP::COMMENT) - line_number++; - - // Get the payload type. - result = this->getint (entry.type_); - if (result != FP::SUCCESS) - return result; - - // get all the consumers. - entry.total_consumers_ = 0; - - while ((result = this->getint - (entry.consumers_[entry.total_consumers_])) == FP::SUCCESS) - ++entry.total_consumers_; // do nothing (should check against max...) - - if (result == FP::EOLINE || result == FP::EOFILE) - return FP::SUCCESS; - else - return result; -} - -FP_RETURN_TYPE -Connection_Config_File_Parser::read_entry (Connection_Config_Info &entry, - int &line_number) -{ - char buf[BUFSIZ]; - FP_RETURN_TYPE result; - - // Increment the line count. - line_number++; - - // Ignore comments, check for EOF and EOLINE if this succeeds, we - // have our connection id - - while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS) - if (result == FP::EOFILE) - return FP::EOFILE; - else if (result == FP::EOLINE - || result == FP::COMMENT) - line_number++; - - // Get the hostname. - result = this->getword (entry.host_); - if (result != FP::SUCCESS) - return result; - - ACE_INT32 port; - - // Get the port number. - result = this->getint (port); - if (result == FP::DEFAULT) - { - // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier). - result = this->getword (buf); - if (result != FP::SUCCESS) - return result; - else - entry.connection_role_ = buf[0]; - - if (entry.connection_role_ == 'C') - entry.remote_port_ = Options::instance ()->consumer_connector_port (); - else if (entry.connection_role_ == 'S') - entry.remote_port_ = Options::instance ()->supplier_connector_port (); - else - // Yikes, this is a *weird* error! - entry.remote_port_ = 0; - } - else if (result != FP::SUCCESS) - return result; - else - { - entry.remote_port_ = u_short (port); - - // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier). - result = this->getword (buf); - if (result != FP::SUCCESS) - return result; - else - entry.connection_role_ = buf[0]; - } - - // Get the max retry delay. - result = this->getint (entry.max_retry_timeout_); - if (result == FP::DEFAULT) - entry.max_retry_timeout_ = Options::instance ()->max_timeout (); - else if (result != FP::SUCCESS) - return result; - - // Get the local port number. - result = this->getint (port); - if (result == FP::DEFAULT) - entry.local_port_ = 0; // @@ Should make this an option. - else if (result != FP::SUCCESS) - return result; - else - entry.local_port_ = u_short (port); - - ACE_INT32 priority; - - // Get the priority. - result = this->getint (priority); - if (result != FP::SUCCESS) - return result; - else - entry.priority_ = priority; - - return FP::SUCCESS; -} - -#if defined (DEBUGGING) -int -main (int argc, char *argv[]) -{ - FP_RETURN_TYPE result; - int line_number = 0; - - { - Connection_Config_Info entry; - Connection_Config_File_Parser connection_config_file; - - connection_config_file.open (argc > 1 ? argv[1] : "connection_config"); - - int line_number = 0; - - ACE_DEBUG ((LM_DEBUG, - "ConnID\tHost\t\tRPort\tRole\tRetry\tLPort\tPriority\n")); - - // Read config file line at a time. - while ((result = connection_config_file.read_entry (entry, line_number)) != FP::EOFILE) - if (result == FP::PARSE_ERROR) - ACE_DEBUG ((LM_DEBUG, - "Error line %d.\n", - line_number)); - else - ACE_DEBUG ((LM_DEBUG, - "%d\t%s\t%d\t%c\t%d\t%d\t%d\n", - entry.connection_id_, - entry.host_, - entry.remote_port_, - entry.connection_role_, - entry.max_retry_timeout_, - entry.local_port_, - entry.priority_)); - - connection_config_file.close (); - } - - { - Consumer_Config_Info entry; - Consumer_Config_File_Parser consumer_config_file; - - consumer_config_file.open (argc > 2 ? argv[2] : "consumer_config"); - - line_number = 0; - - ACE_DEBUG ((LM_DEBUG, - "\nConnID\tLogic\tPayload\tDestinations\n")); - - // Read config file line at a time. - while ((result = consumer_config_file.read_entry (entry, line_number)) != FP::EOFILE) - if (result == FP::PARSE_ERROR) - ACE_DEBUG ((LM_DEBUG, - "Error line %d.\n", - line_number)); - else - { - ACE_DEBUG ((LM_DEBUG, - "%d\t%d\t", - entry.connection_id_, - entry.type_)); - - while (--entry.total_consumers_ >= 0) - ACE_DEBUG ((LM_DEBUG, - "%d,", - entry.consumers_[entry.total_consumers_])); - ACE_DEBUG ((LM_DEBUG, - "\n")); - } - - consumer_config_file.close (); - } - - return 0; -} -#endif /* DEBUGGING */ - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class File_Parser<Connection_Config_Info>; -template class File_Parser<Consumer_Config_Info>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate File_Parser<Connection_Config_Info> -#pragma instantiate File_Parser<Consumer_Config_Info> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/apps/Gateway/Gateway/Config_Files.h b/apps/Gateway/Gateway/Config_Files.h deleted file mode 100644 index 1e23006ddbd..00000000000 --- a/apps/Gateway/Gateway/Config_Files.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Config_Files.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONFIG_FILES) -#define _CONFIG_FILES - -#include "File_Parser.h" -#include "Event.h" - -// Forward declaration. -class Event_Channel; - -class Connection_Config_Info - // = TITLE - // Stores connection configuration information. -{ -public: - ACE_INT32 connection_id_; - // Connection id for this Connection_Handler. - - char host_[BUFSIZ]; - // Host to connect with. - - u_short remote_port_; - // Port to connect with. - - char connection_role_; - // 'S' (supplier) or 'C' (consumer). - - ACE_INT32 max_retry_timeout_; - // Maximum amount of time to wait for reconnecting. - - u_short local_port_; - // Our local port number. - - ACE_INT32 priority_; - // Priority by which different Consumers and Suppliers should be - // serviced. - - Event_Channel *event_channel_; - // We just need a place to store this until we can pass it along - // when creating a Connection_Handler. -}; - -class Connection_Config_File_Parser : public File_Parser<Connection_Config_Info> - // = TITLE - // Parser for the Connection_Handler Connection file. -{ -public: - virtual FP::Return_Type read_entry (Connection_Config_Info &entry, - int &line_number); - // Read in a <Connection_Config_Info> entry. - -}; - -class Consumer_Config_Info - // = TITLE - // Stores the information in a Consumer Map entry. -{ -public: - ACE_INT32 connection_id_; - // Connection id. - - ACE_INT32 type_; - // Message type. - - ACE_INT32 consumers_[MAX_CONSUMERS]; - // Connection ids for consumers that will be routed information - // containing this <connection_id_> - - ACE_INT32 total_consumers_; - // Total number of these consumers. -}; - -class Consumer_Config_File_Parser : public File_Parser<Consumer_Config_Info> - // = TITLE - // Parser for the Consumer Map file. -{ -public: - virtual FP::Return_Type read_entry (Consumer_Config_Info &entry, - int &line_number); - // Read in a <Consumer_Config_Info> entry. -}; - -#endif /* _CONFIG_FILES */ diff --git a/apps/Gateway/Gateway/Connection_Handler.cpp b/apps/Gateway/Gateway/Connection_Handler.cpp deleted file mode 100644 index 7072ce940a3..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "Event_Channel.h" -#include "Concrete_Connection_Handlers.h" - -Event_Channel * -Connection_Handler::event_channel (void) const -{ - return this->event_channel_; -} - -void -Connection_Handler::event_channel (Event_Channel *ec) -{ - this->event_channel_ = ec; -} - -void -Connection_Handler::connection_id (CONNECTION_ID id) -{ - this->connection_id_ = id; -} - -CONNECTION_ID -Connection_Handler::connection_id (void) const -{ - return this->connection_id_; -} - -// The total number of bytes sent/received on this Proxy. - -size_t -Connection_Handler::total_bytes (void) const -{ - return this->total_bytes_; -} - -void -Connection_Handler::total_bytes (size_t bytes) -{ - this->total_bytes_ += bytes; -} - -Connection_Handler::Connection_Handler (void) -{ -} - -Connection_Handler::Connection_Handler (const Connection_Config_Info &pci) - : remote_addr_ (pci.remote_port_, pci.host_[0] == '\0' ? ACE_DEFAULT_SERVER_HOST : pci.host_), - local_addr_ (pci.local_port_), - connection_id_ (pci.connection_id_), - total_bytes_ (0), - state_ (Connection_Handler::IDLE), - timeout_ (1), - max_timeout_ (pci.max_retry_timeout_), - event_channel_ (pci.event_channel_) -{ - // Set the priority of the Proxy. - this->priority (int (pci.priority_)); -} - -// Set the connection_role. - -void -Connection_Handler::connection_role (char d) -{ - this->connection_role_ = d; -} - -// Get the connection_role. - -char -Connection_Handler::connection_role (void) const -{ - return this->connection_role_; -} - -// Sets the timeout delay. - -void -Connection_Handler::timeout (int to) -{ - if (to > this->max_timeout_) - to = this->max_timeout_; - - this->timeout_ = to; -} - -// Re-calculate the current retry timeout delay using exponential -// backoff. Returns the original timeout (i.e., before the -// re-calculation). - -int -Connection_Handler::timeout (void) -{ - int old_timeout = this->timeout_; - this->timeout_ *= 2; - - if (this->timeout_ > this->max_timeout_) - this->timeout_ = this->max_timeout_; - - return old_timeout; -} - -// Sets the max timeout delay. - -void -Connection_Handler::max_timeout (int mto) -{ - this->max_timeout_ = mto; -} - -// Gets the max timeout delay. - -int -Connection_Handler::max_timeout (void) const -{ - return this->max_timeout_; -} - -// Restart connection asynchronously when timeout occurs. - -int -Connection_Handler::handle_timeout (const ACE_Time_Value &, - const void *) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) attempting to reconnect Connection_Handler %d with timeout = %d\n", - this->connection_id (), - this->timeout_)); - - // Delegate the re-connection attempt to the Event Channel. - this->event_channel_->initiate_connection_connection (this); - - return 0; -} - -// Handle shutdown of the Connection_Handler object. - -int -Connection_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down %s Connection_Handler %d on handle %d\n", - this->connection_role () == 'C' ? "Consumer" : "Supplier", - this->connection_id (), - this->get_handle ())); - - // Restart the connection, if possible. - return this->event_channel_->reinitiate_connection_connection (this); -} - -// Set the state of the Proxy. - -void -Connection_Handler::state (Connection_Handler::State s) -{ - this->state_ = s; -} - -// Return the current state of the Proxy. - -Connection_Handler::State -Connection_Handler::state (void) const -{ - return this->state_; -} - -// Upcall from the <ACE_Acceptor> or <ACE_Connector> that delegates -// control to our Connection_Handler. - -int -Connection_Handler::open (void *) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) %s Connection_Handler's handle = %d\n", - this->connection_role () == 'C' ? "Consumer" : "Supplier", - this->peer ().get_handle ())); - - // Call back to the <Event_Channel> to complete our initialization. - if (this->event_channel_->complete_connection_connection (this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1); - - // Turn on non-blocking I/O. - else if (this->peer ().enable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Register ourselves to receive input events. - else if (ACE_Reactor::instance ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1); - else - return 0; -} - -const ACE_INET_Addr & -Connection_Handler::remote_addr (void) const -{ - return this->remote_addr_; -} - -void -Connection_Handler::remote_addr (ACE_INET_Addr &ra) -{ - this->remote_addr_ = ra; -} - -const ACE_INET_Addr & -Connection_Handler::local_addr (void) const -{ - return this->local_addr_; -} - -void -Connection_Handler::local_addr (ACE_INET_Addr &la) -{ - this->local_addr_ = la; -} - -// Make the appropriate type of <Connection_Handler> (i.e., -// <Consumer_Handler>, <Supplier_Handler>, <Thr_Consumer_Handler>, or -// <Thr_Supplier_Handler>). - -Connection_Handler * -Connection_Handler_Factory::make_connection_handler (const Connection_Config_Info &pci) -{ - Connection_Handler *connection_handler = 0; - - // The next few lines of code are dependent on whether we are making - // a threaded/reactive Supplier_Handler/Consumer_Handler. - - if (pci.connection_role_ == 'C') // Configure a Consumer_Handler. - { - // Create a threaded Consumer_Handler. - if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (), - Options::OUTPUT_MT)) - ACE_NEW_RETURN (connection_handler, - Thr_Consumer_Handler (pci), - 0); - - // Create a reactive Consumer_Handler. - else - ACE_NEW_RETURN (connection_handler, - Consumer_Handler (pci), - 0); - } - else // connection_role == 'S', so configure a Supplier_Handler. - { - // Create a threaded Supplier_Handler. - if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (), - Options::INPUT_MT)) - ACE_NEW_RETURN (connection_handler, - Thr_Supplier_Handler (pci), - 0); - - // Create a reactive Supplier_Handler. - else - ACE_NEW_RETURN (connection_handler, - Supplier_Handler (pci), - 0); - } - - return connection_handler; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *>; -template class ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>; -template class ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>; -template class ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>; -template class ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>; -template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>; -#if defined (ACE_HAS_THREADS) -template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>; -#endif /* ACE_HAS_THREADS */ -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *> -#pragma instantiate ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX> -#pragma instantiate ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX> -#pragma instantiate ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX> -#pragma instantiate ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX> -#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> -#if defined (ACE_HAS_THREADS) -#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH> -#endif /* ACE_HAS_THREADS */ -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/apps/Gateway/Gateway/Connection_Handler.h b/apps/Gateway/Gateway/Connection_Handler.h deleted file mode 100644 index 876f69d97f4..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler.h +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Connection_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONNECTION_HANDLER) -#define _CONNECTION_HANDLER - -#include "ace/Service_Config.h" -#include "ace/SOCK_Connector.h" -#include "ace/Svc_Handler.h" -#include "Config_Files.h" -#include "Options.h" -#include "Event.h" - -// Forward declaration. -class Event_Channel; - -class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH> -{ - // = TITLE - // <Connection_Handler> contains info about connection state and - // addressing. - // - // = DESCRIPTION - // The <Connection_Handler> classes process events sent to the - // Event Channel from Suppliers and forward them to Consumers. -public: - Connection_Handler (void); - // Default constructor (needed to make <ACE_Connector> happy). - - Connection_Handler (const Connection_Config_Info &); - // Real constructor. - - virtual int open (void * = 0); - // Initialize and activate a single-threaded <Connection_Handler> - // (called by <ACE_Connector::handle_output>). - - // = The current state of the Connection_Handler. - enum State - { - IDLE = 1, // Prior to initialization. - CONNECTING, // During connection establishment. - ESTABLISHED, // Connection_Handler is established and active. - DISCONNECTING, // Connection_Handler is in the process of connecting. - FAILED // Connection_Handler has failed. - }; - - // = Set/get the current state. - void state (State); - State state (void) const; - - // = Set/get remote INET addr. - void remote_addr (ACE_INET_Addr &); - const ACE_INET_Addr &remote_addr (void) const; - - // = Set/get local INET addr. - void local_addr (ACE_INET_Addr &); - const ACE_INET_Addr &local_addr (void) const; - - // = Set/get connection id. - void connection_id (CONNECTION_ID); - CONNECTION_ID connection_id (void) const; - - // = Set/get the current retry timeout delay. - void timeout (int); - int timeout (void); - - // = Set/get the maximum retry timeout delay. - void max_timeout (int); - int max_timeout (void) const; - - // = Set/get proxy role (i.e., 'S' for Supplier and 'C' for Consumer - // (necessary for error checking). - void connection_role (char); - char connection_role (void) const; - - // = Set/get the <Event_Channel> *. - void event_channel (Event_Channel *); - Event_Channel *event_channel (void) const; - - // = The total number of bytes sent/received on this proxy. - void total_bytes (size_t bytes); - // Increment count by <bytes>. - size_t total_bytes (void) const; - // Return the current byte count. - - virtual int handle_timeout (const ACE_Time_Value &, const void *arg); - // Perform timer-based Connection_Handler reconnection. - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - // Perform Connection_Handler termination. - -protected: - ACE_INET_Addr remote_addr_; - // Address of peer. - - ACE_INET_Addr local_addr_; - // Address of us. - - CONNECTION_ID connection_id_; - // The assigned connection ID of this entry. - - size_t total_bytes_; - // The total number of bytes sent/received on this proxy. - - State state_; - // The current state of the proxy. - - int timeout_; - // Amount of time to wait between reconnection attempts. - - int max_timeout_; - // Maximum amount of time to wait between reconnection attempts. - - char connection_role_; - // Indicates which role the proxy plays ('S' == Supplier and 'C' == - // Consumer). - - Event_Channel *event_channel_; - // Reference to the <Event_Channel> that we use to forward all - // the events from Consumers and Suppliers. -}; - -class Connection_Handler_Factory -{ - // = TITLE - // Creates the appropriate type of <Connection_Handler>. - // - // = DESCRIPTION - // <Connection_Handler>s can include <Consumer_Handler>, - // <Supplier_Handler>, <Thr_Consumer_Handler>, or - // <Thr_Supplier_Handler>). -public: - Connection_Handler *make_connection_handler (const Connection_Config_Info &); - // Make the appropriate type of <Connection_Handler>, based on the - // <Connection_Config_Info> parameter. -}; - -#endif /* _CONNECTION_HANDLER */ diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp b/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp deleted file mode 100644 index 4f399c2b721..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ - -#define ACE_BUILD_SVC_DLL - -#include "Event_Channel.h" -#include "Connection_Handler_Acceptor.h" - -int -Connection_Handler_Acceptor::make_svc_handler (Connection_Handler *&ch) -{ - ACE_ALLOCATOR_RETURN (ch, - this->connection_handler_factory_.make_connection_handler (this->connection_config_info_), - -1); - return 0; -} - -int -Connection_Handler_Acceptor::accept_svc_handler (Connection_Handler *ch) -{ - if (this->inherited::accept_svc_handler (ch) == -1) - return -1; - else - { - ch->connection_id (Options::instance ()->connection_id ()); - ACE_INET_Addr remote_addr; - - if (ch->peer ().get_remote_addr (remote_addr) == -1) - return -1; - - // Set the remote address of our connected Peer. - ch->remote_addr (remote_addr); - - // Set the Event_Channel pointer. - ch->event_channel (&this->event_channel_); - - // Increment the connection ID by one. - Options::instance ()->connection_id ()++; - return 0; - } -} - -Connection_Handler_Acceptor::Connection_Handler_Acceptor (Event_Channel &ec, - char connection_role) - : event_channel_ (ec) -{ - this->connection_config_info_.connection_id_ = 0; - this->connection_config_info_.host_[0] = '\0'; - this->connection_config_info_.remote_port_ = 0; - this->connection_config_info_.connection_role_ = connection_role; - this->connection_config_info_.max_retry_timeout_ = Options::instance ()->max_timeout (); - this->connection_config_info_.local_port_ = 0; - this->connection_config_info_.priority_ = 1; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h b/apps/Gateway/Gateway/Connection_Handler_Acceptor.h deleted file mode 100644 index fb8d84ad667..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Connection_Handler_acceptor.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONNECTION_HANDLER_ACCEPTOR) -#define _CONNECTION_HANDLER_ACCEPTOR - -#include "ace/Acceptor.h" -#include "ace/SOCK_Acceptor.h" -#include "Connection_Handler.h" - -// Forward declaration -class Event_Channel; - -class Connection_Handler_Acceptor : public ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR> -{ - // = TITLE - // A concrete factory class that setups connections to peerds - // and produces a new Connection_Handler object to do the dirty - // work... -public: - Connection_Handler_Acceptor (Event_Channel &, - char connection_role); - // Constructor. - - virtual int make_svc_handler (Connection_Handler *&ch); - // Hook method for creating an appropriate <Connection_Handler>. - - virtual int accept_svc_handler (Connection_Handler *ch); - // Hook method for accepting a connection into the - // <Connection_Handler>. - -protected: - typedef ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR> - inherited; - // Make life easier later on. - - Event_Channel &event_channel_; - // Reference to the event channel. - - Connection_Config_Info connection_config_info_; - // Keeps track of what type of proxy we need to create. - - Connection_Handler_Factory connection_handler_factory_; - // Make the appropriate type of <Connection_Handler>. -}; - -#endif /* _CONNECTION_HANDLER_ACCEPTOR */ diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp b/apps/Gateway/Gateway/Connection_Handler_Connector.cpp deleted file mode 100644 index 218d049977f..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ - -#include "Connection_Handler_Connector.h" - -Connection_Handler_Connector::Connection_Handler_Connector (void) -{ -} - -// Initiate (or reinitiate) a connection to the Connection_Handler. - -int -Connection_Handler_Connector::initiate_connection (Connection_Handler *connection_handler, - ACE_Synch_Options &synch_options) -{ - char addr_buf[MAXHOSTNAMELEN]; - - // Mark ourselves as idle so that the various iterators will ignore - // us until we are reconnected. - connection_handler->state (Connection_Handler::IDLE); - - // We check the remote addr second so that it remains in the - // addr_buf. - if (connection_handler->local_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1 - || connection_handler->remote_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "can't obtain peer's address"), -1); - - // Try to connect to the Peer. - if (this->connect (connection_handler, - connection_handler->remote_addr (), - synch_options, - connection_handler->local_addr ()) == -1) - { - if (errno != EWOULDBLOCK) - { - connection_handler->state (Connection_Handler::FAILED); - ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n", - "connect", addr_buf)); - return -1; - } - else - { - connection_handler->state (Connection_Handler::CONNECTING); - ACE_DEBUG ((LM_DEBUG, - "(%t) in the process of connecting to %s\n", - addr_buf)); - } - } - else - { - connection_handler->state (Connection_Handler::ESTABLISHED); - ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n", - addr_buf, connection_handler->get_handle ())); - } - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>; -template class ACE_Svc_Tuple<Connection_Handler>; -template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>; -template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>; -template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>; -template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>; -template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR> -#pragma instantiate ACE_Svc_Tuple<Connection_Handler> -#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX> -#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX> -#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX> -#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX> -#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.h b/apps/Gateway/Gateway/Connection_Handler_Connector.h deleted file mode 100644 index e81d66d9694..00000000000 --- a/apps/Gateway/Gateway/Connection_Handler_Connector.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Connection_Handler_Connector.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_IO_HANDLER_CONNECTOR) -#define _IO_HANDLER_CONNECTOR - -#include "ace/Connector.h" -#include "ace/SOCK_Connector.h" -#include "Connection_Handler.h" - -class Connection_Handler_Connector : public ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR> -{ - // = TITLE - // A concrete factory class that setups connections to peerds - // and produces a new Connection_Handler object to do the dirty - // work... -public: - Connection_Handler_Connector (void); - - // Initiate (or reinitiate) a connection on the Connection_Handler. - int initiate_connection (Connection_Handler *, - ACE_Synch_Options & = ACE_Synch_Options::synch); - -}; - -#endif /* _IO_HANDLER_CONNECTOR */ diff --git a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h b/apps/Gateway/Gateway/Consumer_Dispatch_Set.h deleted file mode 100644 index 2f89143460d..00000000000 --- a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Consumer_Dispatch_Set.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (CONSUMER_DISPATCH_SET) -#define CONSUMER_DISPATCH_SET - -#include "ace/Containers.h" - -// Forward reference. -class Connection_Handler; - -typedef ACE_Unbounded_Set<Connection_Handler *> Consumer_Dispatch_Set; -typedef ACE_Unbounded_Set_Iterator<Connection_Handler *> Consumer_Dispatch_Set_Iterator; - -#endif /* CONSUMER_DISPATCH_SET */ diff --git a/apps/Gateway/Gateway/Consumer_Entry.cpp b/apps/Gateway/Gateway/Consumer_Entry.cpp deleted file mode 100644 index c3dcd96ebbf..00000000000 --- a/apps/Gateway/Gateway/Consumer_Entry.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Defines an entry in the Consumer Map. -// $Id$ - -#include "Consumer_Entry.h" - -Consumer_Entry::Consumer_Entry (void) -{ - ACE_NEW (this->destinations_, Consumer_Entry::ENTRY_SET); -} - -Consumer_Entry::~Consumer_Entry (void) -{ - delete this->destinations_; -} - -// Get the associated set of destinations. - -Consumer_Entry::ENTRY_SET * -Consumer_Entry::destinations (void) -{ - return this->destinations_; -} - -// Set the associated set of destinations. - -void -Consumer_Entry::destinations (Consumer_Entry::ENTRY_SET *s) -{ - this->destinations_ = s; -} - diff --git a/apps/Gateway/Gateway/Consumer_Entry.h b/apps/Gateway/Gateway/Consumer_Entry.h deleted file mode 100644 index fe502991514..00000000000 --- a/apps/Gateway/Gateway/Consumer_Entry.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Consumer_Entry.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_ROUTING_ENTRY) -#define _ROUTING_ENTRY - -#include "ace/Set.h" - -// Forward reference. -class IO_Handler; - -class Consumer_Entry -{ - // = TITLE - // Defines an entry in the Consumer_Map. -public: - Consumer_Entry (void); - ~Consumer_Entry (void); - - typedef ACE_Unbounded_Set<IO_Handler *> ENTRY_SET; - typedef ACE_Unbounded_Set_Iterator<IO_Handler *> ENTRY_ITERATOR; - - // = Set/get the associated set of destinations. - ENTRY_SET *destinations (void); - void destinations (ENTRY_SET *); - -protected: - ENTRY_SET *destinations_; - // The set of destinations; -}; - -#endif /* _ROUTING_ENTRY */ diff --git a/apps/Gateway/Gateway/Consumer_Map.cpp b/apps/Gateway/Gateway/Consumer_Map.cpp deleted file mode 100644 index 6d16601f949..00000000000 --- a/apps/Gateway/Gateway/Consumer_Map.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#if !defined (_CONSUMER_MAP_C) -#define _CONSUMER_MAP_C - -#include "Consumer_Map.h" - -// Bind the Event_Addr to the INT_ID. - -int -Consumer_Map::bind (Event_Addr event_addr, - Consumer_Entry *Consumer_Entry) -{ - return this->map_.bind (event_addr, Consumer_Entry); -} - -// Find the Consumer_Entry corresponding to the Event_Addr. - -int -Consumer_Map::find (Event_Addr event_addr, - Consumer_Entry *&Consumer_Entry) -{ - return this->map_.find (event_addr, Consumer_Entry); -} - -// Unbind (remove) the Event_Addr from the map. - -int -Consumer_Map::unbind (Event_Addr event_addr) -{ - return this->map_.unbind (event_addr); -} - -Consumer_Map_Iterator::Consumer_Map_Iterator (Consumer_Map &rt) - : map_iter_ (rt.map_) -{ -} - -int -Consumer_Map_Iterator::next (Consumer_Entry *&ss) -{ - // Loop in order to skip over inactive entries if necessary. - - for (ACE_Map_Entry<Event_Addr, Consumer_Entry *> *temp = 0; - this->map_iter_.next (temp) != 0; - this->advance ()) - { - // Otherwise, return the next item. - ss = temp->int_id_; - return 1; - } - return 0; -} - -int -Consumer_Map_Iterator::advance (void) -{ - return this->map_iter_.advance (); -} -#endif /* _CONSUMER_MAP_C */ diff --git a/apps/Gateway/Gateway/Consumer_Map.h b/apps/Gateway/Gateway/Consumer_Map.h deleted file mode 100644 index fd392afaf6e..00000000000 --- a/apps/Gateway/Gateway/Consumer_Map.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Consumer_Map.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONSUMER_MAP_H) -#define _CONSUMER_MAP_H - -#include "ace/Map_Manager.h" -#include "Concurrency_Strategies.h" -#include "Event.h" -#include "Consumer_Entry.h" - -class Consumer_Map -{ - // = TITLE - // Define a generic consumer map based on the ACE Map_Manager. - // - // = DESCRIPTION - // This class makes it easier to use the Map_Manager. -public: - int bind (Event_Addr event, Consumer_Entry *Consumer_Entry); - // Associate Event with the Consumer_Entry. - - int find (Event_Addr event, Consumer_Entry *&Consumer_Entry); - // Break any association of EXID. - - int unbind (Event_Addr event); - // Locate EXID and pass out parameter via INID. If found, - // return 0, else -1. - -public: - ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_; - // Map that associates Event Addrs (external ids) with Consumer_Entry *'s - // <internal IDs>. -}; - -class Consumer_Map_Iterator -{ - // = TITLE - // Define an iterator for the Consumer Map. -public: - Consumer_Map_Iterator (Consumer_Map &mm); - int next (Consumer_Entry *&); - int advance (void); - -private: - ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_iter_; - // Map we are iterating over. -}; -#endif /* _CONSUMER_MAP_H */ diff --git a/apps/Gateway/Gateway/Dispatch_Set.h b/apps/Gateway/Gateway/Dispatch_Set.h deleted file mode 100644 index a867f1ca5ff..00000000000 --- a/apps/Gateway/Gateway/Dispatch_Set.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Dispatch_Set.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_DISPATCH_SET) -#define _DISPATCH_SET - -#include "ace/Set.h" - -// Forward reference. -class Proxy_Handler; - -typedef ACE_Unbounded_Set<Proxy_Handler *> Dispatch_Set; -typedef ACE_Unbounded_Set_Iterator<Proxy_Handler *> Dispatch_Set_Iterator; - -#endif /* _DISPATCH_SET */ diff --git a/apps/Gateway/Gateway/Event.h b/apps/Gateway/Gateway/Event.h deleted file mode 100644 index 2221f63916a..00000000000 --- a/apps/Gateway/Gateway/Event.h +++ /dev/null @@ -1,217 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Event.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (EVENT_H) -#define EVENT_H - -#include "ace/OS.h" - -// = The following #defines should really be in a separate include -// file that is shared with the ../Peer/ directory. For now, we'll -// keep them here to simplify the sharing between the two directories. -// BTW, this is also the reason why all the methods are inlined... - -// Used by Peers to create Consumers in a Gateway. -#if !defined (DEFAULT_GATEWAY_CONSUMER_PORT) -#define DEFAULT_GATEWAY_CONSUMER_PORT 10009 -#endif /* DEFAULT_GATEWAY_CONSUMER_PORT */ - -// Used by Peers create Suppliers in a Gateway. -#if !defined (DEFAULT_GATEWAY_SUPPLIER_PORT) -#define DEFAULT_GATEWAY_SUPPLIER_PORT 10010 -#endif /* DEFAULT_GATEWAY_SUPPLIER_PORT */ - -// Used by a Gateway to create Consumers in a Peer. -#if !defined (DEFAULT_PEER_CONSUMER_PORT) -#define DEFAULT_PEER_CONSUMER_PORT 10011 -#endif /* DEFAULT_PEER_CONSUMER_PORT */ - -// Used by a Gateway to create Suppliers in a Peer. -#if !defined (DEFAULT_PEER_SUPPLIER_PORT) -#define DEFAULT_PEER_SUPPLIER_PORT 10012 -#endif /* DEFAULT_PEER_SUPPLIER_PORT */ - -#if !defined (MAX_CONSUMERS) -#define MAX_CONSUMERS 1000 -#endif /* MAX_CONSUMERS */ - -// This is the unique supplier identifier that denotes a particular -// <Connection_Handler> in the Gateway. -typedef ACE_INT32 CONNECTION_ID; - -enum -{ - // = These are the types of events generated by the <Suppliers> and - // handled by the <Event_Channel>. - - ROUTING_EVENT = 0, - // A normal event, which is forwarded to the <Consumers>. - - SUBSCRIPTION_EVENT = 1 - // A subscription to <Suppliers> managed by the <Event_Channel>. -}; - -class Event_Key -{ - // = TITLE - // Address used to identify the source/destination of an event. - // - // = DESCRIPTION - // This is really a "processing descriptor" that is used to - // decouple the processing, filtering, and forwarding logic of - // the Event Channel from the format of the data. The - // <connection_id_> and <type_> fields are copied from the - // <Event_Header> class below. -public: - Event_Key (CONNECTION_ID cid = -1, - ACE_INT32 type = 0, - ACE_INT32 priority = 0) - : connection_id_ (cid), - type_ (type), - priority_ (priority) - { - } - - int operator== (const Event_Key &event_addr) const - { - return this->connection_id_ == event_addr.connection_id_ - && this->type_ == event_addr.type_; - } - - CONNECTION_ID connection_id_; - // Unique connection identifier that denotes a particular - // Connection_Handler. - - ACE_INT32 type_; - // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>. - - ACE_INT32 priority_; - // Event priority. -}; - -class Event_Header -{ - // = TITLE - // Fixed sized header. - // - // = DESCRIPTION - // This is designed to have a sizeof (16) to avoid alignment - // problems on most platforms. -public: - enum - { - INVALID_ID = -1 // No peer can validly use this number. - }; - - Event_Header (ACE_INT32 len, - CONNECTION_ID connection_id, - ACE_INT32 type, - ACE_INT32 priority) - : len_ (len), - connection_id_ (connection_id), - type_ (type), - priority_ (priority) - { - } - - void decode (void) - { - this->len_ = ntohl (this->len_); - this->connection_id_ = ntohl (this->connection_id_); - this->type_ = ntohl (this->type_); - this->priority_ = ntohl (this->priority_); - } - // Decode from network byte order to host byte order. - - void encode (void) - { - this->len_ = htonl (this->len_); - this->connection_id_ = htonl (this->connection_id_); - this->type_ = htonl (this->type_); - this->priority_ = htonl (this->priority_); - } - // Encode from host byte order to network byte order. - - ACE_INT32 len_; - // Length of the data_ payload, in bytes. - - CONNECTION_ID connection_id_; - // Unique connection identifier that denotes a particular - // Connection_Handler. - - ACE_INT32 type_; - // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>. - - ACE_INT32 priority_; - // Event priority. -}; - -class Event -{ - // = TITLE - // Variable-sized event (data_ may be variable-sized between - // 0 and MAX_PAYLOAD_SIZE). -public: - enum { MAX_PAYLOAD_SIZE = 1024 }; - // The maximum size of an Event. - - Event_Header header_; - // Event header. - - char data_[MAX_PAYLOAD_SIZE]; - // Event data. -}; - -class Subscription -{ - // = TITLE - // Allows Consumers to subscribe to be routed information - // arriving from a particular Supplier connection id. -public: - void decode (void) - { - this->connection_id_ = ntohl (this->connection_id_); - - for (ACE_INT32 i = 0; i < this->total_consumers_; i++) - this->consumers_[i] = ntohl (this->consumers_[i]); - - this->total_consumers_ = ntohl (this->total_consumers_); - } - // Decode from network byte order to host byte order. - - void encode (void) - { - this->connection_id_ = htonl (this->connection_id_); - - for (ACE_INT32 i = 0; i < this->total_consumers_; i++) - this->consumers_[i] = htonl (this->consumers_[i]); - - this->total_consumers_ = htonl (this->total_consumers_); - } - // Encode from host byte order to network byte order. - - ACE_INT32 connection_id_; - // Connection id. - - ACE_INT32 consumers_[MAX_CONSUMERS]; - // Connection ids for consumers that will be routed information - // containing this <connection_id_> - - ACE_INT32 total_consumers_; - // Total number of these consumers. -}; - -#endif /* EVENT_H */ diff --git a/apps/Gateway/Gateway/Event_Channel.cpp b/apps/Gateway/Gateway/Event_Channel.cpp deleted file mode 100644 index 159f91456c4..00000000000 --- a/apps/Gateway/Gateway/Event_Channel.cpp +++ /dev/null @@ -1,546 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "Connection_Handler_Connector.h" -#include "Event_Channel.h" - -Event_Channel::~Event_Channel (void) -{ -} - -Event_Channel::Event_Channel (void) - : supplier_acceptor_ (*this, 'S'), - consumer_acceptor_ (*this, 'C') -{ -} - -int -Event_Channel::compute_performance_statistics (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) doing the performance timeout here...\n")); - CONNECTION_MAP_ITERATOR cmi (this->connection_map_); - - // If we've got a <ACE_Thread_Manager> then use it to suspend all - // the threads. This will enable us to get an accurate count. - - if (Options::instance ()->threading_strategy () - != Options::REACTIVE) - { - if (ACE_Thread_Manager::instance ()->suspend_all () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "suspend_all"), -1); - ACE_DEBUG ((LM_DEBUG, "(%t) suspending all threads...")); - } - - size_t total_bytes_in = 0; - size_t total_bytes_out = 0; - - // Iterate through the connection map summing up the number of bytes - // sent/received. - - for (CONNECTION_MAP_ENTRY *me = 0; - cmi.next (me) != 0; - cmi.advance ()) - { - Connection_Handler *connection_handler = me->int_id_; - - if (connection_handler->connection_role () == 'C') - total_bytes_out += connection_handler->total_bytes (); - else // connection_handler->connection_role () == 'S' - total_bytes_in += connection_handler->total_bytes (); - } - - ACE_DEBUG ((LM_DEBUG, - "(%t) after %d seconds, \ntotal_bytes_in = %d\ntotal_bytes_out = %d\n", - Options::instance ()->performance_window (), - total_bytes_in, - total_bytes_out)); - - ACE_DEBUG ((LM_DEBUG, - "(%t) %f Mbits/sec received.\n", - (float) (total_bytes_in * 8 / - (float) (1024 * 1024 * Options::instance ()->performance_window ())))); - - ACE_DEBUG ((LM_DEBUG, - "(%t) %f Mbits/sec sent.\n", - (float) (total_bytes_out * 8 / - (float) (1024 * 1024 * Options::instance ()->performance_window ())))); - - // Resume all the threads again. - - if (Options::instance ()->threading_strategy () - != Options::REACTIVE) - { - if (ACE_Thread_Manager::instance ()->resume_all () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "resume_all"), -1); - ACE_DEBUG ((LM_DEBUG, "(%t) resuming all threads...")); - } - - return 0; -} - -int -Event_Channel::handle_timeout (const ACE_Time_Value &, - const void *) -{ - // This is called periodically to compute performance statistics. - return this->compute_performance_statistics (); -} - -int -Event_Channel::put (ACE_Message_Block *event, - ACE_Time_Value *) -{ - // We got a valid event, so determine its type, which is stored in - // the first of the two <ACE_Message_Block>s, which are chained - // together by <ACE::recv>. - Event_Key *event_key = (Event_Key *) event->rd_ptr (); - - // Skip over the address portion and get the data, which is in the - // second <ACE_Message_Block>. - ACE_Message_Block *data = event->cont (); - - switch (event_key->type_) - { - case ROUTING_EVENT: - this->routing_event (event_key, - data); - break; - case SUBSCRIPTION_EVENT: - this->subscription_event (data); - break; - } - - // Release the memory in the message block. - event->release (); - return 0; -} - -void -Event_Channel::subscription_event (ACE_Message_Block *data) -{ - Event *event = (Event *) data->rd_ptr (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) received a subscription with %d bytes from connection id %d\n", - event->header_.len_, - event->header_.connection_id_)); - Subscription *subscription = (Subscription *) event->data_; - // Convert the subscription into host byte order so that we can - // access it directly without having to repeatedly muck with it... - subscription->decode (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) connection_id_ = %d, total_consumers_ = %d\n", - subscription->connection_id_, - subscription->total_consumers_)); - - for (ACE_INT32 i = 0; - i < subscription->total_consumers_; - i++) - ACE_DEBUG ((LM_DEBUG, - "(%t) consumers_[%d] = %d\n", - i, - subscription->consumers_[i])); - -} - -void -Event_Channel::routing_event (Event_Key *forwarding_address, - ACE_Message_Block *data) -{ - Consumer_Dispatch_Set *dispatch_set = 0; - - // Initialize the <dispatch_set> to points to the set of Consumers - // associated with this forwarding address. - - if (this->efd_.find (*forwarding_address, - dispatch_set) == -1) - // Failure. - ACE_ERROR ((LM_DEBUG, - "(%t) find failed on connection id = %d, type = %d\n", - forwarding_address->connection_id_, - forwarding_address->type_)); - else - { - // Check to see if there are any consumers. - if (dispatch_set->size () == 0) - ACE_DEBUG ((LM_WARNING, - "there are no active consumers for this event currently\n")); - - else // There are consumers, so forward the event. - { - // Initialize the interator. - Consumer_Dispatch_Set_Iterator dsi (*dispatch_set); - - // At this point, we should assign a thread-safe locking - // strategy to the <ACE_Message_Block> is we're running in a - // multi-threaded configuration. - data->locking_strategy (Options::instance ()->locking_strategy ()); - - for (Connection_Handler **connection_handler = 0; - dsi.next (connection_handler) != 0; - dsi.advance ()) - { - // Only process active connection_handlers. - if ((*connection_handler)->state () == Connection_Handler::ESTABLISHED) - { - // Duplicate the event portion via reference - // counting. - ACE_Message_Block *dup_msg = data->duplicate (); - - ACE_DEBUG ((LM_DEBUG, "(%t) forwarding to Consumer %d\n", - (*connection_handler)->connection_id ())); - - if ((*connection_handler)->put (dup_msg) == -1) - { - if (errno == EWOULDBLOCK) // The queue has filled up! - ACE_ERROR ((LM_ERROR, "(%t) %p\n", - "gateway is flow controlled, so we're dropping events")); - else - ACE_ERROR ((LM_ERROR, - "(%t) %p transmission error to peer %d\n", - "put", - (*connection_handler)->connection_id ())); - - // We are responsible for releasing an - // ACE_Message_Block if failures occur. - dup_msg->release (); - } - } - } - } - } -} - -int -Event_Channel::initiate_connection_connection (Connection_Handler *connection_handler) -{ - ACE_Synch_Options synch_options; - - if (Options::instance ()->blocking_semantics () == ACE_NONBLOCK) - synch_options = ACE_Synch_Options::asynch; - else - synch_options = ACE_Synch_Options::synch; - - return this->connector_.initiate_connection (connection_handler, - synch_options); -} - -int -Event_Channel::complete_connection_connection (Connection_Handler *connection_handler) -{ - int option = connection_handler->connection_role () == 'S' ? SO_RCVBUF : SO_SNDBUF; - int socket_queue_size = Options::instance ()->socket_queue_size (); - - if (socket_queue_size > 0) - if (connection_handler->peer ().set_option (SOL_SOCKET, - option, - &socket_queue_size, - sizeof (int)) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option")); - - connection_handler->thr_mgr (ACE_Thread_Manager::instance ()); - - // Our state is now "established." - connection_handler->state (Connection_Handler::ESTABLISHED); - - // Restart the timeout to 1. - connection_handler->timeout (1); - - ACE_INT32 id = htonl (connection_handler->connection_id ()); - - // Send the connection id to the peerd. - - ssize_t n = connection_handler->peer ().send ((const void *) &id, sizeof id); - - if (n != sizeof id) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - n == 0 ? "peer has closed down unexpectedly" : "send"), - -1); - return 0; -} - -// Restart connection (blocking_semantics dicates whether we restart -// synchronously or asynchronously). - -int -Event_Channel::reinitiate_connection_connection (Connection_Handler *connection_handler) -{ - // Skip over proxies with deactivated handles. - if (connection_handler->get_handle () != ACE_INVALID_HANDLE) - // Make sure to close down peer to reclaim descriptor. - connection_handler->peer ().close (); - - if (connection_handler->state () != Connection_Handler::DISCONNECTING) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) scheduling reinitiation of Connection_Handler %d\n", - connection_handler->connection_id ())); - - // Reschedule ourselves to try and connect again. - if (ACE_Reactor::instance ()->schedule_timer - (connection_handler, 0, connection_handler->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - return 0; -} - -// Initiate active connections with the Consumer and Supplier Peers. - -void -Event_Channel::initiate_connector (void) -{ - if (Options::instance ()->enabled - (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR)) - { - CONNECTION_MAP_ITERATOR cmi (this->connection_map_); - - // Iterate through the Consumer Map connecting all the - // Connection_Handlers. - - for (CONNECTION_MAP_ENTRY *me = 0; - cmi.next (me) != 0; - cmi.advance ()) - { - Connection_Handler *connection_handler = me->int_id_; - - if (this->initiate_connection_connection (connection_handler) == -1) - continue; // Failures are handled elsewhere... - } - } -} - -// Initiate passive acceptor to wait for Consumer and Supplier Peers -// to accept. - -int -Event_Channel::initiate_acceptors (void) -{ - if (Options::instance ()->enabled (Options::CONSUMER_ACCEPTOR) - && this->consumer_acceptor_.open - (Options::instance ()->consumer_acceptor_port (), - ACE_Reactor::instance (), - Options::instance ()->blocking_semantics ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "cannot register acceptor"), - -1); - else - ACE_DEBUG ((LM_DEBUG, - "accepting Consumers at %d\n", - Options::instance ()->consumer_acceptor_port ())); - - if (Options::instance ()->enabled (Options::SUPPLIER_ACCEPTOR) - && this->supplier_acceptor_.open - (Options::instance ()->supplier_acceptor_port (), - ACE_Reactor::instance (), - Options::instance ()->blocking_semantics ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "cannot register acceptor"), - -1); - else - ACE_DEBUG ((LM_DEBUG, - "accepting Suppliers at %d\n", - Options::instance ()->supplier_acceptor_port ())); - - return 0; -} - -// This method gracefully shuts down all the Handlers in the -// Connection_Handler Connection Map. - -int -Event_Channel::close (u_long) -{ - if (Options::instance ()->threading_strategy () != Options::REACTIVE) - { - if (ACE_Thread_Manager::instance ()->suspend_all () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - "suspend_all"), - -1); - ACE_DEBUG ((LM_DEBUG, - "(%t) suspending all threads\n")); - } - - // First tell everyone that the spaceship is here... - { - CONNECTION_MAP_ITERATOR cmi (this->connection_map_); - - // Iterate over all the handlers and shut them down. - - for (CONNECTION_MAP_ENTRY *me; - cmi.next (me) != 0; - cmi.advance ()) - { - Connection_Handler *connection_handler = me->int_id_; - - ACE_DEBUG ((LM_DEBUG, - "(%t) closing down connection %d\n", - connection_handler->connection_id ())); - - // Mark Connection_Handler as DISCONNECTING so we don't try to - // reconnect... - connection_handler->state (Connection_Handler::DISCONNECTING); - } - } - - // Close down the connector - this->connector_.close (); - - // Close down the supplier acceptor. - this->supplier_acceptor_.close (); - - // Close down the consumer acceptor. - this->consumer_acceptor_.close (); - - // Now tell everyone that it is now time to commit suicide. - { - CONNECTION_MAP_ITERATOR cmi (this->connection_map_); - - for (CONNECTION_MAP_ENTRY *me; - cmi.next (me) != 0; - cmi.advance ()) - { - Connection_Handler *connection_handler = me->int_id_; - - // Deallocate Connection_Handler resources. - connection_handler->destroy (); // Will trigger a delete. - } - } - - return 0; -} - -int -Event_Channel::find_proxy (ACE_INT32 connection_id, - Connection_Handler *&connection_handler) -{ - return this->connection_map_.find (connection_id, - connection_handler); -} - -int -Event_Channel::bind_proxy (Connection_Handler *connection_handler) -{ - int result = this->connection_map_.bind (connection_handler->connection_id (), - connection_handler); - - switch (result) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) bind failed for connection %d\n", - connection_handler->connection_id ()), - -1); - /* NOTREACHED */ - case 1: // Oops, found a duplicate! - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) duplicate connection %d, already bound\n", - connection_handler->connection_id ()), - -1); - /* NOTREACHED */ - case 0: - // Success. - return 0; - /* NOTREACHED */ - default: - ACE_ERROR_RETURN ((LM_DEBUG, - "(%t) invalid result %d\n", - result), - -1); - /* NOTREACHED */ - } - - return 0; -} - -int -Event_Channel::subscribe (const Event_Key &event_addr, - Consumer_Dispatch_Set *cds) -{ - int result = this->efd_.bind (event_addr, cds); - - // Bind with consumer map, keyed by peer address. - switch (result) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) bind failed for connection %d\n", - event_addr.connection_id_), - -1); - /* NOTREACHED */ - case 1: // Oops, found a duplicate! - ACE_ERROR_RETURN ((LM_DEBUG, - "(%t) duplicate consumer map entry %d, " - "already bound\n", - event_addr.connection_id_), - -1); - /* NOTREACHED */ - case 0: - // Success. - return 0; - default: - ACE_ERROR_RETURN ((LM_DEBUG, - "(%t) invalid result %d\n", - result), - -1); - /* NOTREACHED */ - } - - return 0; -} - -int -Event_Channel::open (void *) -{ - // Ignore <SIGPIPE> so each <Consumer_Handler> can handle it. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - ACE_UNUSED_ARG (sig); - - // Actively initiate Peer connections. - this->initiate_connector (); - - // Passively initiate Peer acceptor. - if (this->initiate_acceptors () == -1) - return -1; - - // If we're not running reactively, then we need to make sure that - // <ACE_Message_Block> reference counting operations are - // thread-safe. Therefore, we create an <ACE_Lock_Adapter> that is - // parameterized by <ACE_SYNCH_MUTEX> to prevent race conditions. - if (Options::instance ()->threading_strategy () - != Options::REACTIVE) - { - ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *la; - - ACE_NEW_RETURN (la, - ACE_Lock_Adapter<ACE_SYNCH_MUTEX>, - -1); - - Options::instance ()->locking_strategy (la); - } - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>; -template class ACE_Map_Entry<ACE_INT32, Connection_Handler *>; -template class ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>; -template class ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>; -template class ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX>; -template class ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX>; -template class ACE_Unbounded_Set_Iterator<Connection_Handler *>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Map_Entry<ACE_INT32, Connection_Handler *> -#pragma instantiate ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX> -#pragma instantiate ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX> -#pragma instantiate ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX> -#pragma instantiate ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX> -#pragma instantiate ACE_Unbounded_Set_Iterator<Connection_Handler *> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/apps/Gateway/Gateway/Event_Channel.h b/apps/Gateway/Gateway/Event_Channel.h deleted file mode 100644 index dfe5faa6fd4..00000000000 --- a/apps/Gateway/Gateway/Event_Channel.h +++ /dev/null @@ -1,129 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Event_Channel.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_EVENT_CHANNEL) -#define ACE_EVENT_CHANNEL - -#include "Connection_Handler_Connector.h" -#include "Connection_Handler_Acceptor.h" -#include "Consumer_Dispatch_Set.h" -#include "Event_Forwarding_Discriminator.h" - -typedef ACE_Null_Mutex MAP_MUTEX; - -class ACE_Svc_Export Event_Channel : public ACE_Event_Handler -{ - // = TITLE - // Define a generic Event_Channel. - // - // = DESCRIPTION - // The inspiration for this class is derived from the CORBA COS - // Event Channel, though the design is simplified. - // - // We inherit from <ACE_Event_Handler> so that we can be - // registered with an <ACE_Reactor> to handle timeouts. -public: - // = Initialization and termination methods. - Event_Channel (void); - ~Event_Channel (void); - - virtual int open (void * = 0); - // Open the channel. - - virtual int close (u_long = 0); - // Close down the Channel. - - // = Proxy management methods. - int initiate_connection_connection (Connection_Handler *); - // Initiate the connection of the <Connection_Handler> to its peer. - - int complete_connection_connection (Connection_Handler *); - // Complete the initialization of the <Connection_Handler> once it's - // connected to its Peer. - - int reinitiate_connection_connection (Connection_Handler *); - // Reinitiate a connection asynchronously when the Peer fails. - - int bind_proxy (Connection_Handler *); - // Bind the <Connection_Handler> to the <connection_map_>. - - int find_proxy (ACE_INT32 connection_id, - Connection_Handler *&); - // Locate the <Connection_Handler> with <connection_id>. - - int subscribe (const Event_Key &event_addr, - Consumer_Dispatch_Set *cds); - // Subscribe the <Consumer_Dispatch_Set> to receive events that - // match <Event_Key>. - - // = Event processing entry point. - virtual int put (ACE_Message_Block *mb, - ACE_Time_Value * = 0); - // Pass <mb> to the Event Channel so it can forward it to Consumers. - - void initiate_connector (void); - // Actively initiate connections to the Peers. - - int initiate_acceptors (void); - // Passively initiate the <Peer_Acceptor>s for Consumer and - // Suppliers. - -private: - int parse_args (int argc, char *argv[]); - // Parse the command-line arguments. - - // = Methods for handling events. - void routing_event (Event_Key *event_key, - ACE_Message_Block *data); - // Forwards the <data> to Consumer that have registered to receive - // it, based on addressing information in the <event_key>. - - void subscription_event (ACE_Message_Block *data); - // Add a Consumer subscription. - - int compute_performance_statistics (void); - // Perform timer-based performance profiling. - - virtual int handle_timeout (const ACE_Time_Value &, - const void *arg); - // Periodically callback to perform timer-based performance - // profiling. - - Connection_Handler_Connector connector_; - // Used to establish the connections actively. - - Connection_Handler_Acceptor supplier_acceptor_; - // Used to establish connections passively and create Suppliers. - - Connection_Handler_Acceptor consumer_acceptor_; - // Used to establish connections passively and create Consumers. - - // = Make life easier by defining typedefs. - typedef ACE_Map_Manager<CONNECTION_ID, Connection_Handler *, MAP_MUTEX> - CONNECTION_MAP; - typedef ACE_Map_Iterator<CONNECTION_ID, Connection_Handler *, MAP_MUTEX> - CONNECTION_MAP_ITERATOR; - typedef ACE_Map_Entry<CONNECTION_ID, Connection_Handler *> - CONNECTION_MAP_ENTRY; - - CONNECTION_MAP connection_map_; - // Table that maps <CONNECTION_ID>s to <Connection_Handler> *'s. - - Event_Forwarding_Discriminator efd_; - // Map that associates an event to a set of <Consumer_Handler> *'s. -}; - -#endif /* ACE_EVENT_CHANNEL */ diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp deleted file mode 100644 index 8bda0e85a4d..00000000000 --- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#if !defined (_CONSUMER_MAP_C) -#define _CONSUMER_MAP_C - -#include "Event_Forwarding_Discriminator.h" - -// Bind the Event_Key to the INT_ID. - -int -Event_Forwarding_Discriminator::bind (Event_Key event_addr, - Consumer_Dispatch_Set *cds) -{ - return this->map_.bind (event_addr, cds); -} - -// Find the Consumer_Dispatch_Set corresponding to the Event_Key. - -int -Event_Forwarding_Discriminator::find (Event_Key event_addr, - Consumer_Dispatch_Set *&cds) -{ - return this->map_.find (event_addr, cds); -} - -// Unbind (remove) the Event_Key from the map. - -int -Event_Forwarding_Discriminator::unbind (Event_Key event_addr) -{ - return this->map_.unbind (event_addr); -} - -Event_Forwarding_Discriminator_Iterator::Event_Forwarding_Discriminator_Iterator - (Event_Forwarding_Discriminator &rt) - : map_iter_ (rt.map_) -{ -} - -int -Event_Forwarding_Discriminator_Iterator::next (Consumer_Dispatch_Set *&cds) -{ - ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *> *temp; - - if (this->map_iter_.next (temp) == 0) - return 0; - else - { - cds = temp->int_id_; - return 1; - } -} - -int -Event_Forwarding_Discriminator_Iterator::advance (void) -{ - return this->map_iter_.advance (); -} -#endif /* _CONSUMER_MAP_C */ diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h deleted file mode 100644 index 09b62d007d0..00000000000 --- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Event_Forwarding_Discriminator.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_CONSUMER_MAP_H) -#define _CONSUMER_MAP_H - -#include "ace/Map_Manager.h" -#include "ace/Synch.h" -#include "Event.h" -#include "Consumer_Dispatch_Set.h" - -class Event_Forwarding_Discriminator -{ - // = TITLE - // Map events to the set of Consumer_Proxies that have subscribed - // to receive the event. -public: - int bind (Event_Key event, Consumer_Dispatch_Set *cds); - // Associate Event with the Consumer_Dispatch_Set. - - int unbind (Event_Key event); - // Locate EXID and pass out parameter via INID. If found, - // return 0, else -1. - - int find (Event_Key event, Consumer_Dispatch_Set *&cds); - // Break any association of EXID. - -public: - ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_; - // Map that associates <Event_Key>s (external ids) with - // <Consumer_Dispatch_Set> *'s <internal IDs>. -}; - -class Event_Forwarding_Discriminator_Iterator -{ - // = TITLE - // Define an iterator for the Consumer Map. -public: - Event_Forwarding_Discriminator_Iterator (Event_Forwarding_Discriminator &mm); - int next (Consumer_Dispatch_Set *&); - int advance (void); - -private: - ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_iter_; - // Map we are iterating over. -}; -#endif /* _CONSUMER_MAP_H */ diff --git a/apps/Gateway/Gateway/File_Parser.cpp b/apps/Gateway/Gateway/File_Parser.cpp deleted file mode 100644 index bfde7a6911e..00000000000 --- a/apps/Gateway/Gateway/File_Parser.cpp +++ /dev/null @@ -1,150 +0,0 @@ -#if !defined (FILE_PARSER_C) -// $Id$ - -#define FILE_PARSER_C - -#include "ace/OS.h" -#include "File_Parser.h" - -// This fixes a nasty bug with cfront-based compilers (like -// Centerline). -typedef FP::Return_Type FP_RETURN_TYPE; - -// File_Parser stuff. - -template <class ENTRY> int -File_Parser<ENTRY>::open (const char filename[]) -{ - this->infile_ = ACE_OS::fopen (filename, "r"); - if (this->infile_ == 0) - return -1; - else - return 0; -} - -template <class ENTRY> int -File_Parser<ENTRY>::close (void) -{ - return ACE_OS::fclose (this->infile_); -} - -template <class ENTRY> FP_RETURN_TYPE -File_Parser<ENTRY>::getword (char buf[]) -{ - return this->readword (buf); -} - -// Get the next string from the file via this->readword() -// Check make sure the string forms a valid number. - -template <class ENTRY> FP_RETURN_TYPE -File_Parser<ENTRY>::getint (ACE_INT32 &value) -{ - char buf[BUFSIZ]; - FP_RETURN_TYPE read_result = this->readword (buf); - - if (read_result == FP::SUCCESS) - { - // Check to see if this is the "use the default value" symbol? - if (buf[0] == '*') - return FP::DEFAULT; - else - { - // ptr is used for error checking with ACE_OS::strtol. - char *ptr; - - // try to convert the buf to a decimal number - value = ACE_OS::strtol (buf, &ptr, 10); - - // check if the buf is a decimal or not - if (value == 0 && ptr == buf) - return FP::PARSE_ERROR; - else - return FP::SUCCESS; - } - } - else - return read_result; -} - - -template <class ENTRY> FP_RETURN_TYPE -File_Parser<ENTRY>::readword (char buf[]) -{ - int wordlength = 0; - int c; - - // Skip over leading delimiters and get word. - - while ((c = getc (this->infile_)) != EOF && c != '\n') - if (this->delimiter (c)) - { - // We've reached the end of a "word". - if (wordlength > 0) - break; - } - else - buf[wordlength++] = c; - - buf[wordlength] = '\0'; - - if (c == EOF) { - // If EOF is just a delimiter, don't return EOF so that the word - // gets processed. - if (wordlength > 0) - { - ungetc (c, this->infile_); - return FP::SUCCESS; - } - else - // else return EOF so that read loops stop - return FP::EOFILE; - } - else if (c == '\n') - { - // if the EOLINE is just a delimiter, don't return EOLINE - // so that the word gets processed - if (wordlength > 0) - ungetc (c, this->infile_); - else - return FP::EOLINE; - } - - // Skip comments. - if (this->comments (buf[0])) - { - if (this->skipline () == EOF) - return FP::EOFILE; - else - return FP::COMMENT; - } - else - return FP::SUCCESS; -} - -template <class ENTRY> int -File_Parser<ENTRY>::delimiter (char ch) -{ - return ch == ' ' || ch == ',' || ch == '\t'; -} - -template <class ENTRY> int -File_Parser<ENTRY>::comments (char ch) -{ - return ch == '#'; -} - -template <class ENTRY> int -File_Parser<ENTRY>::skipline (void) -{ - // Skip the remainder of the line. - - int c; - - while ((c = getc (this->infile_)) != '\n' && c != EOF) - continue; - - return c; -} - -#endif /* _FILE_PARSER_C */ diff --git a/apps/Gateway/Gateway/File_Parser.h b/apps/Gateway/Gateway/File_Parser.h deleted file mode 100644 index e32d0948621..00000000000 --- a/apps/Gateway/Gateway/File_Parser.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// File_Parser.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_FILE_PARSER) -#define _FILE_PARSER - -#include "ace/OS.h" - -class FP -{ - // = TITLE - // This class serves as a namespace for the <Return_Type>. -public: - enum Return_Type - { - EOLINE, - EOFILE, - SUCCESS, - COMMENT, - DEFAULT, - PARSE_ERROR - }; -}; - -template <class ENTRY> -class File_Parser -{ - // = TITLE - // Class used to parse the configuration file for the - // <Consumer_Map>. -public: - // = Open and Close the file specified - int open (const char filename[]); - int close (void); - - virtual FP::Return_Type read_entry (ENTRY &entry, - int &line_number) = 0; - // Pure virtual hook that subclasses override and use the protected - // methods to fill in the <entry>. - -protected: - FP::Return_Type getword (char buf[]); - // Read the next ASCII word. - - FP::Return_Type getint (ACE_INT32 &value); - // Read the next integer. - - FP::Return_Type readword (char buf[]); - // Read the next "word," which is demarcated by <delimiter>s. - // - // @@ This function is inherently flawed since it doesn't take a - // count of the size of <buf>... - - int delimiter (char ch); - // Returns true if <ch> is a delimiter, i.e., ' ', ',', or '\t'. - - int comments (char ch); - // Returns true if <ch> is the comment character, i.e., '#'. - - int skipline (void); - // Skips to the remainder of a line, e.g., when we find a comment - // character. - - FILE *infile_; - // Pointer to the file we're reading. -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "File_Parser.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("File_Parser.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* _FILE_PARSER */ diff --git a/apps/Gateway/Gateway/Gateway.cpp b/apps/Gateway/Gateway/Gateway.cpp deleted file mode 100644 index a6d6c3660d3..00000000000 --- a/apps/Gateway/Gateway/Gateway.cpp +++ /dev/null @@ -1,342 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "Config_Files.h" -#include "ace/Service_Config.h" -#include "Event_Channel.h" -#include "Gateway.h" - -class ACE_Svc_Export Gateway : public ACE_Service_Object - // = TITLE - // Integrates the whole Gateway application. - // - // = DESCRIPTION - // This implementation uses the <Event_Channel> as the basis - // for the <Gateway> routing. -{ -protected: - // = Service configurator hooks. - virtual int init (int argc, char *argv[]); - // Perform initialization. - - virtual int fini (void); - // Perform termination when unlinked dynamically. - - virtual int info (char **, size_t) const; - // Return info about this service. - - // = Configuration methods. - int parse_connection_config_file (void); - // Parse the proxy configuration file. - - int parse_consumer_config_file (void); - // Parse the consumer configuration file. - - // = Lifecycle management methods. - int handle_input (ACE_HANDLE); - // Shut down the Gateway when input comes in from the controlling - // console. - - int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0); - // Shut down the Gateway when a signal arrives. - - Event_Channel event_channel_; - // The Event Channel routes events from Supplier(s) to Consumer(s) - // using <Supplier_Handler> and <Consumer_Handler> objects. - - Connection_Handler_Factory connection_handler_factory_; - // Creates the appropriate type of <Connection_Handlers>. -}; - -int -Gateway::handle_signal (int signum, siginfo_t *, ucontext_t *) -{ - if (signum > 0) - ACE_DEBUG ((LM_DEBUG, "(%t) %S\n", signum)); - - // Shut down the main event loop. - ACE_Reactor::end_event_loop(); - return 0; -} - -int -Gateway::handle_input (ACE_HANDLE h) -{ - char buf[BUFSIZ]; - // Consume the input... - ACE_OS::read (h, buf, sizeof (buf)); - - // Shut us down. - return this->handle_signal ((int) h); -} - -int -Gateway::init (int argc, char *argv[]) -{ - // Parse the "command-line" arguments. - Options::instance ()->parse_args (argc, argv); - - ACE_Sig_Set sig_set; - sig_set.sig_add (SIGINT); - sig_set.sig_add (SIGQUIT); - - // Register ourselves to receive signals so we can shut down - // gracefully. - - if (ACE_Reactor::instance ()->register_handler (sig_set, - this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - "register_handler"), - -1); - - // Register this handler to receive events on stdin. We use this to - // shutdown the Gateway gracefully. - if (ACE::register_stdin_handler (this, - ACE_Reactor::instance (), - ACE_Thread_Manager::instance ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - "register_stdin_handler"), - -1); - - // If this->performance_window_ > 0 start a timer. - - if (Options::instance ()->performance_window () > 0) - { - if (ACE_Reactor::instance ()->schedule_timer - (&this->event_channel_, 0, - Options::instance ()->performance_window ()) == -1) - ACE_ERROR ((LM_ERROR, - "(%t) %p\n", - "schedule_timer")); - else - ACE_DEBUG ((LM_DEBUG, - "starting timer for %d seconds...\n", - Options::instance ()->performance_window ())); - } - - // Are we running as a connector? - if (Options::instance ()->enabled - (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR)) - { - // Parse the proxy configuration file. - this->parse_connection_config_file (); - - // Parse the consumer config file and build the event forwarding - // discriminator. - this->parse_consumer_config_file (); - } - - // Initialize the Event_Channel. - return this->event_channel_.open (); -} - -// This method is automatically called when the Gateway is shutdown. - -int -Gateway::fini (void) -{ - // Remove the handler that receive events on stdin. Otherwise, we - // will crash on shutdown. - ACE::remove_stdin_handler (ACE_Reactor::instance (), - ACE_Thread_Manager::instance ()); - - // Close down the event channel. - this->event_channel_.close (); - - // Need to make sure we cleanup this Singleton. - delete Options::instance (); - return 0; -} - -// Returns information on the currently active service. - -int -Gateway::info (char **strp, size_t length) const -{ - char buf[BUFSIZ]; - - ACE_OS::sprintf (buf, "%s\t %s", "Gateway daemon", - "# Application-level gateway\n"); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strncpy (*strp, buf, length); - return ACE_OS::strlen (buf); -} - -// Parse and build the proxy table. - -int -Gateway::parse_connection_config_file (void) -{ - // File that contains the proxy configuration information. - Connection_Config_File_Parser connection_file; - int file_empty = 1; - int line_number = 0; - - if (connection_file.open (Options::instance ()->connection_config_file ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - Options::instance ()->connection_config_file ()), - -1); - - // Keep track of the previous connection id to make sure the - // connection config file isn't corrupted. - int previous_connection_id = 0; - - // Read config file one line at a time. - - for (Connection_Config_Info pci; - connection_file.read_entry (pci, line_number) != FP::EOFILE; - ) - { - file_empty = 0; - - // First time in check. - if (previous_connection_id == 0) - { - previous_connection_id = 1; - - if (pci.connection_id_ != 1) - ACE_DEBUG ((LM_DEBUG, - "(%t) warning, the first connection id should be 1 not %d\n", - pci.connection_id_)); - } - else if (previous_connection_id + 1 != pci.connection_id_) - ACE_DEBUG ((LM_DEBUG, - "(%t) warning, connection ids should keep increasing by 1 and %d + 1 != %d\n", - previous_connection_id, - pci.connection_id_)); - - // Update the last connection id to ensure that we monotonically - // increase by 1. - previous_connection_id = pci.connection_id_; - - if (Options::instance ()->enabled (Options::DEBUG)) - ACE_DEBUG ((LM_DEBUG, - "(%t) conn id = %d, " - "host = %s, " - "remote port = %d, " - "proxy role = %c, " - "max retry timeout = %d, " - "local port = %d, " - "priority = %d\n", - pci.connection_id_, - pci.host_, - pci.remote_port_, - pci.connection_role_, - pci.max_retry_timeout_, - pci.local_port_, - pci.priority_)); - - pci.event_channel_ = &this->event_channel_; - - // Create the appropriate type of Proxy. - Connection_Handler *connection_handler; - - ACE_ALLOCATOR_RETURN (connection_handler, - this->connection_handler_factory_.make_connection_handler (pci), - -1); - - // Bind the new Connection_Handler to the connection ID. - this->event_channel_.bind_proxy (connection_handler); - } - - // Keep track of the next available connection id, which is - // necessary for Peers that connect with us, rather than vice versa. - Options::instance ()->connection_id () = previous_connection_id + 1; - - if (file_empty) - ACE_ERROR ((LM_WARNING, - "warning: connection connection_handler configuration file was empty\n")); - return 0; -} - -int -Gateway::parse_consumer_config_file (void) -{ - // File that contains the consumer event forwarding information. - Consumer_Config_File_Parser consumer_file; - int file_empty = 1; - int line_number = 0; - - if (consumer_file.open (Options::instance ()->consumer_config_file ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) %p\n", - Options::instance ()->consumer_config_file ()), - -1); - - // Read config file line at a time. - for (Consumer_Config_Info cci_entry; - consumer_file.read_entry (cci_entry, line_number) != FP::EOFILE; - ) - { - file_empty = 0; - - if (Options::instance ()->enabled (Options::DEBUG)) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) connection id = %d, payload = %d, " - "number of consumers = %d\n", - cci_entry.connection_id_, - cci_entry.type_, - cci_entry.total_consumers_)); - - for (int i = 0; i < cci_entry.total_consumers_; i++) - ACE_DEBUG ((LM_DEBUG, - "(%t) destination[%d] = %d\n", - i, - cci_entry.consumers_[i])); - } - - Consumer_Dispatch_Set *dispatch_set; - ACE_NEW_RETURN (dispatch_set, - Consumer_Dispatch_Set, - -1); - - Event_Key event_addr (cci_entry.connection_id_, - cci_entry.type_); - - // Add the Consumers to the Dispatch_Set. - for (int i = 0; i < cci_entry.total_consumers_; i++) - { - Connection_Handler *connection_handler = 0; - - // Lookup destination and add to Consumer_Dispatch_Set set - // if found. - if (this->event_channel_.find_proxy (cci_entry.consumers_[i], - connection_handler) != -1) - dispatch_set->insert (connection_handler); - else - ACE_ERROR ((LM_ERROR, - "(%t) not found: destination[%d] = %d\n", - i, - cci_entry.consumers_[i])); - } - - this->event_channel_.subscribe (event_addr, dispatch_set); - } - - if (file_empty) - ACE_ERROR ((LM_WARNING, - "warning: consumer map configuration file was empty\n")); - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the Gateway. - -ACE_SVC_FACTORY_DEFINE (Gateway) - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Node<Connection_Handler *>; -template class ACE_Unbounded_Set<Connection_Handler *>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Node<Connection_Handler *> -#pragma instantiate ACE_Unbounded_Set<Connection_Handler *> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/apps/Gateway/Gateway/Gateway.dsp b/apps/Gateway/Gateway/Gateway.dsp deleted file mode 100644 index cba54522af3..00000000000 --- a/apps/Gateway/Gateway/Gateway.dsp +++ /dev/null @@ -1,96 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Gateway" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Gateway - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak" CFG="Gateway - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Gateway - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "Gateway - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Concrete_Connection_Handlers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Config_Files.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Channel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Forwarding_Discriminator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Parser.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gateway.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/Gateway.dsw b/apps/Gateway/Gateway/Gateway.dsw deleted file mode 100644 index a54d8e89983..00000000000 --- a/apps/Gateway/Gateway/Gateway.dsw +++ /dev/null @@ -1,44 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Gateway"=.\Gateway.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "gatewayd"=.\gatewayd.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Gateway
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Gateway/Gateway/Gateway.h b/apps/Gateway/Gateway/Gateway.h deleted file mode 100644 index 5c85f6e696c..00000000000 --- a/apps/Gateway/Gateway/Gateway.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Gateway.h -// -// = DESCRIPTION -// Since the Gateway is an <ACE_Service_Object>, this file defines -// the entry point into the Service Configurator framework. -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_GATEWAY) -#define ACE_GATEWAY - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (Gateway) - -#endif /* ACE_GATEWAY */ - diff --git a/apps/Gateway/Gateway/Gateway4.mak b/apps/Gateway/Gateway/Gateway4.mak deleted file mode 100644 index 510a9702b61..00000000000 --- a/apps/Gateway/Gateway/Gateway4.mak +++ /dev/null @@ -1,1592 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=Gateway - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to Gateway - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "gatewayd - Win32 Debug" && "$(CFG)" != "Gateway - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway4.mak" CFG="Gateway - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gatewayd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "Gateway - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "Gateway - Win32 Debug"
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gatewayd\Debug"
-# PROP BASE Intermediate_Dir "gatewayd\Debug"
-# PROP BASE Target_Dir "gatewayd"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "gatewayd_Debug"
-# PROP Target_Dir "gatewayd"
-OUTDIR=.\.
-INTDIR=.\gatewayd_Debug
-
-ALL : "Gateway - Win32 Debug" "$(OUTDIR)\gatewayd.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\gatewayd.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\gatewayd.exe"
- -@erase "$(OUTDIR)\gatewayd.ilk"
- -@erase "$(OUTDIR)\gatewayd.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/gatewayd.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\gatewayd_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gatewayd.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 Gateway.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=Gateway.lib aced.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/gatewayd.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/gatewayd.exe"
-LINK32_OBJS= \
- "$(INTDIR)\gatewayd.obj" \
- "$(OUTDIR)\Gateway.lib"
-
-"$(OUTDIR)\gatewayd.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Gateway - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Gateway\Debug"
-# PROP BASE Intermediate_Dir "Gateway\Debug"
-# PROP BASE Target_Dir "Gateway"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Gateway_Debug"
-# PROP Target_Dir "Gateway"
-OUTDIR=.\.
-INTDIR=.\Gateway_Debug
-
-ALL : "$(OUTDIR)\Gateway.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\Concrete_Connection_Handlers.obj"
- -@erase "$(INTDIR)\Config_Files.obj"
- -@erase "$(INTDIR)\Connection_Handler.obj"
- -@erase "$(INTDIR)\Connection_Handler_Acceptor.obj"
- -@erase "$(INTDIR)\Connection_Handler_Connector.obj"
- -@erase "$(INTDIR)\Event_Channel.obj"
- -@erase "$(INTDIR)\Event_Forwarding_Discriminator.obj"
- -@erase "$(INTDIR)\File_Parser.obj"
- -@erase "$(INTDIR)\Gateway.obj"
- -@erase "$(INTDIR)\Options.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\Gateway.dll"
- -@erase "$(OUTDIR)\Gateway.exp"
- -@erase "$(OUTDIR)\Gateway.ilk"
- -@erase "$(OUTDIR)\Gateway.lib"
- -@erase "$(OUTDIR)\Gateway.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
- /Fp"$(INTDIR)/Gateway.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Gateway_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/Gateway.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/Gateway.pdb" /debug /machine:I386 /out:"$(OUTDIR)/Gateway.dll"\
- /implib:"$(OUTDIR)/Gateway.lib"
-LINK32_OBJS= \
- "$(INTDIR)\Concrete_Connection_Handlers.obj" \
- "$(INTDIR)\Config_Files.obj" \
- "$(INTDIR)\Connection_Handler.obj" \
- "$(INTDIR)\Connection_Handler_Acceptor.obj" \
- "$(INTDIR)\Connection_Handler_Connector.obj" \
- "$(INTDIR)\Event_Channel.obj" \
- "$(INTDIR)\Event_Forwarding_Discriminator.obj" \
- "$(INTDIR)\File_Parser.obj" \
- "$(INTDIR)\Gateway.obj" \
- "$(INTDIR)\Options.obj"
-
-"$(OUTDIR)\Gateway.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "gatewayd - Win32 Debug"
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "Gateway"
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-"Gateway - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\Gateway4.mak" CFG="Gateway - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\gatewayd.cpp
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-DEP_CPP_GATEW=\
- "..\..\..\ace\config-win32.h"\
- ".\Gateway.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\gatewayd.obj" : $(SOURCE) $(DEP_CPP_GATEW) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "Gateway - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\Config_Files.cpp
-DEP_CPP_CONFI=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Event.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Config_Files.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Event_Channel.cpp
-DEP_CPP_EVENT=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Event_Channel.obj" : $(SOURCE) $(DEP_CPP_EVENT) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Event_Forwarding_Discriminator.cpp
-DEP_CPP_EVENT_=\
- "..\..\..\ace\config-win32.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Forwarding_Discriminator.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Event_Forwarding_Discriminator.obj" : $(SOURCE) $(DEP_CPP_EVENT_)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Gateway.cpp
-DEP_CPP_GATEWA=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Gateway.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Gateway.obj" : $(SOURCE) $(DEP_CPP_GATEWA) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Options.cpp
-DEP_CPP_OPTIO=\
- "..\..\..\ace\config-win32.h"\
- ".\Event.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Options.obj" : $(SOURCE) $(DEP_CPP_OPTIO) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler.cpp
-DEP_CPP_CONNE=\
- "..\..\..\ace\config-win32.h"\
- ".\Concrete_Connection_Handlers.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler.obj" : $(SOURCE) $(DEP_CPP_CONNE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Acceptor.cpp
-DEP_CPP_CONNEC=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler_Acceptor.obj" : $(SOURCE) $(DEP_CPP_CONNEC)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Connector.cpp
-DEP_CPP_CONNECT=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Event.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler_Connector.obj" : $(SOURCE) $(DEP_CPP_CONNECT)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Concrete_Connection_Handlers.cpp
-DEP_CPP_CONCR=\
- "..\..\..\ace\config-win32.h"\
- ".\Concrete_Connection_Handlers.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Concrete_Connection_Handlers.obj" : $(SOURCE) $(DEP_CPP_CONCR)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\File_Parser.cpp
-DEP_CPP_FILE_=\
- "..\..\..\ace\config-win32.h"\
- ".\File_Parser.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\File_Parser.obj" : $(SOURCE) $(DEP_CPP_FILE_) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/Gateway/Gateway/Gateway4.mdp b/apps/Gateway/Gateway/Gateway4.mdp Binary files differdeleted file mode 100644 index c63046475dd..00000000000 --- a/apps/Gateway/Gateway/Gateway4.mdp +++ /dev/null diff --git a/apps/Gateway/Gateway/IO_Handler.cpp b/apps/Gateway/Gateway/IO_Handler.cpp deleted file mode 100644 index ba1b355b3ba..00000000000 --- a/apps/Gateway/Gateway/IO_Handler.cpp +++ /dev/null @@ -1,710 +0,0 @@ -// $Id$ - -#include "Consumer_Entry.h" -#include "IO_Handler_Connector.h" - -// Convenient short-hands. -#define CO CONDITION -#define MU MAP_MUTEX - -// The total number of bytes sent/received on this channel. - -size_t -IO_Handler::total_bytes (void) -{ - return this->total_bytes_; -} - -void -IO_Handler::total_bytes (size_t bytes) -{ - this->total_bytes_ += bytes; -} - -IO_Handler::IO_Handler (Consumer_Map *consumer_map, - IO_Handler_Connector *ioc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY> (thr_mgr), - consumer_map_ (consumer_map), - id_ (-1), - total_bytes_ (0), - state_ (IO_Handler::IDLE), - connector_ (ioc), - timeout_ (1), - max_timeout_ (IO_Handler::MAX_RETRY_TIMEOUT), - socket_queue_size_ (socket_queue_size) -{ -} - -// Set the associated channel. - -void -IO_Handler::active (int a) -{ - this->state (a == 0 ? IO_Handler::IDLE : IO_Handler::ESTABLISHED); -} - -// Get the associated channel. - -int -IO_Handler::active (void) -{ - return this->state () == IO_Handler::ESTABLISHED; -} - -// Set the direction. - -void -IO_Handler::direction (char d) -{ - this->direction_ = d; -} - -// Get the direction. - -char -IO_Handler::direction (void) -{ - return this->direction_; -} - -// Sets the timeout delay. - -void -IO_Handler::timeout (int to) -{ - if (to > this->max_timeout_) - to = this->max_timeout_; - - this->timeout_ = to; -} - -// Recalculate the current retry timeout delay using exponential -// backoff. Returns the original timeout (i.e., before the -// recalculation). - -int -IO_Handler::timeout (void) -{ - int old_timeout = this->timeout_; - this->timeout_ *= 2; - - if (this->timeout_ > this->max_timeout_) - this->timeout_ = this->max_timeout_; - - return old_timeout; -} - -// Sets the max timeout delay. - -void -IO_Handler::max_timeout (int mto) -{ - this->max_timeout_ = mto; -} - -// Gets the max timeout delay. - -int -IO_Handler::max_timeout (void) -{ - return this->max_timeout_; -} - -// Restart connection asynchronously when timeout occurs. - -int -IO_Handler::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) attempting to reconnect IO_Handler %d with timeout = %d\n", - this->id (), this->timeout_)); - return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch); -} - -// Restart connection (blocking_semantics dicates whether we -// restart synchronously or asynchronously). - -int -IO_Handler::reinitiate_connection (void) -{ - // Skip over deactivated descriptors. - if (this->get_handle () != -1) - { - // Make sure to close down peer to reclaim descriptor. - this->peer ().close (); - -#if 0 -// if (this->state () == FAILED) -// { - // Reinitiate timeout to improve reconnection time. -// this->timeout (1); -#endif - - ACE_DEBUG ((LM_DEBUG, - "(%t) scheduling reinitiation of IO_Handler %d\n", - this->id ())); - - // Reschedule ourselves to try and connect again. - if (ACE_Service_Config::reactor ()->schedule_timer - (this, 0, this->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - return 0; -} - -// Handle shutdown of the IO_Handler object. - -int -IO_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down IO_Handler %d on handle %d\n", - this->id (), this->get_handle ())); - - return this->reinitiate_connection (); -} - -// Set the state of the channel. - -void -IO_Handler::state (IO_Handler::State s) -{ - this->state_ = s; -} - -// Perform the first-time initiation of a connection to the peer. - -int -IO_Handler::initialize_connection (void) -{ - this->state_ = IO_Handler::ESTABLISHED; - - // Restart the timeout to 1. - this->timeout (1); - -#if defined (ASSIGN_SUPPLIER_ID) - // Action that sends the route id to the peerd. - - CONN_ID id = htons (this->id ()); - - ssize_t n = this->peer ().send ((const void *) &id, sizeof id); - - if (n != sizeof id) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - n == 0 ? "gatewayd has closed down unexpectedly" : "send"), - -1); -#endif /* ASSIGN_SUPPLIER_ID */ - return 0; -} - -// Set the size of the socket queue. - -void -IO_Handler::socket_queue_size (void) -{ - if (this->socket_queue_size_ > 0) - { - int option = this->direction_ == 'S' ? SO_RCVBUF : SO_SNDBUF; - - if (this->peer ().set_option (SOL_SOCKET, option, - &this->socket_queue_size_, sizeof (int)) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option")); - } -} - -// Upcall from the ACE_Acceptor::handle_input() that -// delegates control to our application-specific IO_Handler. - -int -IO_Handler::open (void *a) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) IO_Handler's fd = %d\n", - this->peer ().get_handle ())); - - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn on non-blocking I/O. - if (this->peer ().enable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call down to the base class to activate and register this handler. - if (this->ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY>::open (a) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1); - - return this->initialize_connection (); -} - -// Return the current state of the channel. - -IO_Handler::State -IO_Handler::state (void) -{ - return this->state_; -} - -void -IO_Handler::id (CONN_ID id) -{ - this->id_ = id; -} - -CONN_ID -IO_Handler::id (void) -{ - return this->id_; -} - -// Set the peer's address information. -int -IO_Handler::bind (const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - CONN_ID id) -{ - this->remote_addr_ = remote_addr; - this->local_addr_ = local_addr; - this->id_ = id; - return 0; -} - -ACE_INET_Addr & -IO_Handler::remote_addr (void) -{ - return this->remote_addr_; -} - -ACE_INET_Addr & -IO_Handler::local_addr (void) -{ - return this->local_addr_; -} - -// Constructor sets the consumer map pointer. - -Consumer_Handler::Consumer_Handler (Consumer_Map *consumer_map, - IO_Handler_Connector *ioc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size) -{ - this->direction_ = 'C'; - this->msg_queue ()->high_water_mark (Consumer_Handler::QUEUE_SIZE); -} - -// This method should be called only when the peer shuts down -// unexpectedly. This method simply marks the IO_Handler as -// having failed so that handle_close () can reconnect. - -int -Consumer_Handler::handle_input (ACE_HANDLE) -{ - char buf[1]; - - this->state (IO_Handler::FAILED); - - switch (this->peer ().recv (buf, sizeof buf)) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has failed unexpectedly for Output IO_Handler %d\n", - this->id ()), -1); - /* NOTREACHED */ - case 0: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has shutdown unexpectedly for Output IO_Handler %d\n", - this->id ()), -1); - /* NOTREACHED */ - default: - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer is sending input on Output IO_Handler %d\n", - this->id ()), -1); - /* NOTREACHED */ - } -} - -// Perform a non-blocking put() of event MB. If we are unable to -// send the entire event the remainder is re-queued at the *front* of -// the Event_List. - -int -Consumer_Handler::nonblk_put (ACE_Message_Block *mb) -{ - // Try to send the event. If we don't send it all (e.g., due to - // flow control), then re-queue the remainder at the head of the - // Event_List and ask the ACE_Reactor to inform us (via - // handle_output()) when it is possible to try again. - - ssize_t n = this->send (mb); - - if (n == -1) - { - // Things have gone wrong, let's try to close down and set up a new reconnection. - this->state (IO_Handler::FAILED); - this->handle_close (); - return -1; - } - else if (errno == EWOULDBLOCK) // Didn't manage to send everything. - { - ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n", - this->get_handle (), this->id ())); - - // ACE_Queue in *front* of the list to preserve order. - if (this->msg_queue ()->enqueue_head - (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1); - - // Tell ACE_Reactor to call us back when we can send again. - else if (ACE_Service_Config::reactor ()-> - schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1); - return 0; - } - else - return n; -} - -ssize_t -Consumer_Handler::send (ACE_Message_Block *mb) -{ - ssize_t len = mb->length (); - ssize_t n = this->peer ().send (mb->rd_ptr (), len); - - if (n <= 0) - return errno == EWOULDBLOCK ? 0 : n; - else if (n < len) - // Re-adjust pointer to skip over the part we did send. - mb->rd_ptr (n); - else /* if (n == length) */ - { - // The whole event is sent, we can now safely deallocate the - // buffer. Note that this should decrement a reference count... - delete mb; - errno = 0; - } - this->total_bytes (n); - return n; -} - -// Finish sending an event when flow control conditions abate. -// This method is automatically called by the ACE_Reactor. - -int -Consumer_Handler::handle_output (ACE_HANDLE) -{ - ACE_Message_Block *mb = 0; - - ACE_DEBUG ((LM_DEBUG, - "(%t) in handle_output on handle %d\n", - this->get_handle ())); - // The list had better not be empty, otherwise there's a bug! - - if (this->msg_queue ()->dequeue_head - (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1) - { - switch (this->nonblk_put (mb)) - { - case 0: // Partial send. - ACE_ASSERT (errno == EWOULDBLOCK); - // Didn't write everything this time, come back later... - break; - - case -1: - // Caller is responsible for freeing a ACE_Message_Block if failures occur. - delete mb; - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure")); - - /* FALLTHROUGH */ - default: // Sent the whole thing. - - // If we succeed in writing the entire event (or we did not - // fail due to EWOULDBLOCK) then check if there are more - // events on the Event_List. If there aren't, tell the - // ACE_Reactor not to notify us anymore (at least until - // there are new events queued up). - - if (this->msg_queue ()->is_empty ()) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) queueing deactivated on handle %d to routing id %d\n", - this->get_handle (), this->id ())); - - - if (ACE_Service_Config::reactor ()-> - cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup")); - } - } - } - else - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head")); - return 0; -} - -// Send an event to a peer (may queue if necessary). - -int -Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - if (this->msg_queue ()->is_empty ()) - // Try to send the event *without* blocking! - return this->nonblk_put (mb); - else - // If we have queued up events due to flow control then just - // enqueue and return. - return this->msg_queue ()->enqueue_tail - (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Constructor sets the consumer map pointer and the connector -// pointer. - -Supplier_Handler::Supplier_Handler (Consumer_Map *consumer_map, - IO_Handler_Connector *ioc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : msg_frag_ (0), - IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size) -{ - this->direction_ = 'S'; - this->msg_queue ()->high_water_mark (0); -} - -// Receive a Peer event from peerd. Handles fragmentation. -// -// The routing event returned from recv consists of two parts: -// 1. The Address part, contains the virtual routing id. -// 2. The Data part, which contains the actual data to be routed. -// -// The reason for having two parts is to shield the higher layers -// of software from knowledge of the event structure. - -int -Supplier_Handler::recv (ACE_Message_Block *&forward_addr) -{ - Event *event; - ssize_t len; - ssize_t n = 0; - size_t offset = 0; - - if (this->msg_frag_ == 0) - // No existing fragment... - ACE_NEW_RETURN (this->msg_frag_, - ACE_Message_Block (sizeof (Event)), - -1); - - event = (Event *) this->msg_frag_->rd_ptr (); - - const ssize_t HEADER_SIZE = sizeof (Event_Header); - ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length (); - - if (header_bytes_left_to_read > 0) - { - n = this->peer ().recv (this->msg_frag_->wr_ptr (), - header_bytes_left_to_read); - - if (n == -1 /* error */ - || n == 0 /* EOF */) - { - ACE_ERROR ((LM_ERROR, "%p\n", - "Recv error during header read ")); - ACE_DEBUG ((LM_DEBUG, - "attempted to read %d\n", - header_bytes_left_to_read)); - delete this->msg_frag_; - this->msg_frag_ = 0; - return n; - } - - // Bump the write pointer by the amount read. - this->msg_frag_->wr_ptr (n); - - // At this point we may or may not have the ENTIRE header. - if (this->msg_frag_->length () < HEADER_SIZE) - { - ACE_DEBUG ((LM_DEBUG, - "Partial header received: only %d bytes\n", - this->msg_frag_->length ())); - // Notify the caller that we didn't get an entire event. - errno = EWOULDBLOCK; - return -1; - } - } - - // At this point there is a complete, valid header in msg_frag_ - len = sizeof event->buf_ + HEADER_SIZE - this->msg_frag_->length (); - - ssize_t m = this->peer ().recv (event->buf_ + offset, len); - - // Try to receive the remainder of the event - - switch (m) - { - case -1: - if (errno == EWOULDBLOCK) - { - // This shouldn't happen since the ACE_Reactor - // just triggered us to handle pending I/O! - ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n")); - errno = EWOULDBLOCK; - return -1; - } - else - /* FALLTHROUGH */; - - case 0: // Premature EOF. - delete this->msg_frag_; - this->msg_frag_ = 0; - return 0; - - default: - if (m != len) - // Re-adjust pointer to skip over the part we've read. - { - this->msg_frag_->wr_ptr (m); - errno = EWOULDBLOCK; - return -1; // Inform caller that we didn't get the whole event. - } - else - { - // Set the write pointer at 1 past the end of the event. - this->msg_frag_->wr_ptr (m); - - // Set the read pointer to the beginning of the event. - this->msg_frag_->rd_ptr (this->msg_frag_->base ()); - - // Allocate an event forwarding header and chain the data - // portion onto its continuation field. - ACE_NEW_RETURN (forward_addr, - ACE_Message_Block (sizeof (Event_Addr), - ACE_Message_Block::MB_PROTO, - this->msg_frag_), - -1); - - Event_Addr event_addr (this->id (), event->header_.routing_id_, 0); - // Copy the forwarding address from the Event_Addr into - // forward_addr. - forward_addr->copy ((char *) &event_addr, sizeof (Event)); - - // Reset the pointer to indicate we've got an entire event. - this->msg_frag_ = 0; - } - this->total_bytes (m + n); -#if defined (VERBOSE) - ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s", - event_addr.conn_id_, event->header_.routing_id_, event->header_.len_, - event->header_.len_, event->buf_)); -#else - ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n", - event->header_.routing_id_, event->header_.len_, this->total_bytes ())); -#endif - return m + n; - } -} - -// Receive various types of input (e.g., Peer event from the -// gatewayd, as well as stdio). - -int -Supplier_Handler::handle_input (ACE_HANDLE) -{ - ACE_Message_Block *forward_addr = 0; - - switch (this->recv (forward_addr)) - { - case 0: - // Note that a peer should never initiate a shutdown. - this->state (IO_Handler::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) Peer has closed down unexpectedly for Input IO_Handler %d\n", - this->id ()), -1); - /* NOTREACHED */ - case -1: - if (errno == EWOULDBLOCK) - // A short-read, we'll come back and finish it up later on! - return 0; - else // A weird problem occurred, shut down and start again. - { - this->state (IO_Handler::FAILED); - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input IO_Handler %d\n", - "Peer has failed unexpectedly", - this->id ()), -1); - } - /* NOTREACHED */ - default: - return this->forward (forward_addr); - } -} - -// Route an event to its appropriate destination. - -int -Supplier_Handler::forward (ACE_Message_Block *forward_addr) -{ - // We got a valid event, so determine its virtual routing id, - // which is stored in the first of the two event blocks chained - // together. - - Event_Addr *forwarding_key = (Event_Addr *) forward_addr->rd_ptr (); - - // Skip over the address portion. - const ACE_Message_Block *const data = forward_addr->cont (); - - // RE points to the routing entry located for this routing id. - Consumer_Entry *re = 0; - - if (this->consumer_map_->find (*forwarding_key, re) != -1) - { - // Check to see if there are any destinations. - if (re->destinations ()->size () == 0) - ACE_DEBUG ((LM_WARNING, - "there are no active destinations for this event currently\n")); - - else // There are destinations, so forward the event. - { - Consumer_Entry::ENTRY_SET *esp = re->destinations (); - Consumer_Entry::ENTRY_ITERATOR si (*esp); - - for (IO_Handler **channel = 0; si.next (channel) != 0; si.advance ()) - { - // Only process active channels. - if ((*channel)->active ()) - { - // Clone the event portion (should be doing reference counting here...) - ACE_Message_Block *newmsg = data->clone (); - - ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ())); - - if ((*channel)->put (newmsg) == -1) - { - if (errno == EWOULDBLOCK) // The queue has filled up! - ACE_ERROR ((LM_ERROR, "(%t) %p\n", - "gateway is flow controlled, so we're dropping events")); - else - ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n", - "put", (*channel)->id ())); - - // Caller is responsible for freeing a ACE_Message_Block if failures occur. - delete newmsg; - } - } - } - // Will become superfluous once we have reference counting... - delete forward_addr; - return 0; - } - } - delete forward_addr; - // Failure return. - ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n", - forwarding_key->conn_id_, forwarding_key->logical_id_, forwarding_key->payload_)); - return 0; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX>; -template class ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX>; -template class ACE_Map_Entry<Event_Addr, Consumer_Entry *>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/apps/Gateway/Gateway/IO_Handler.h b/apps/Gateway/Gateway/IO_Handler.h deleted file mode 100644 index 7bda073f09b..00000000000 --- a/apps/Gateway/Gateway/IO_Handler.h +++ /dev/null @@ -1,224 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// IO_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_IO_HANDLER) -#define _IO_HANDLER - -#include "ace/Service_Config.h" -#include "ace/SOCK_Connector.h" -#include "ace/Svc_Handler.h" -#include "Consumer_Map.h" -#include "Consumer_Entry.h" -#include "Event.h" - -// Forward declaration. -class IO_Handler_Connector; - -class IO_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY> - // = TITLE - // IO_Handler contains info about connection state and addressing. - // - // = DESCRIPTION - // The IO_Handler classes process events sent from the peers to the - // gateway. These classes works as follows: - // - // 1. IO_Handler_Connector creates a number of connections with the set of - // peers specified in a configuration file. - // - // 2. For each peer that connects successfully, IO_Handler_Connector - // creates an IO_Handler object. Each object assigns a unique routing - // id to its associated peer. The Handlers are used by gatewayd - // that to receive, route, and forward events from source peer(s) - // to destination peer(s). -{ -public: - IO_Handler (Consumer_Map *, - IO_Handler_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - - virtual int open (void * = 0); - // Initialize and activate a single-threaded IO_Handler (called by - // ACE_Connector::handle_output()). - - int bind (const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - CONN_ID); - // Set the peer's addressing and routing information. - - ACE_INET_Addr &remote_addr (void); - // Returns the peer's routing address. - - ACE_INET_Addr &local_addr (void); - // Returns our local address. - - // = Set/get routing id. - CONN_ID id (void); - void id (CONN_ID); - - // = Set/get the current state of the IO_Handler. - enum State - { - IDLE = 1, // Prior to initialization. - CONNECTING, // During connection establishment. - ESTABLISHED, // IO_Handler is established and active. - DISCONNECTING, // IO_Handler is in the process of connecting. - FAILED // IO_Handler has failed. - }; - - // = Set/get the current state. - State state (void); - void state (State); - - // = Set/get the current retry timeout delay. - int timeout (void); - void timeout (int); - - // = Set/get the maximum retry timeout delay. - int max_timeout (void); - void max_timeout (int); - - // = Set/get IO_Handler activity status. - int active (void); - void active (int); - - // = Set/get direction (necessary for error checking). - char direction (void); - void direction (char); - - // = The total number of bytes sent/received on this channel. - size_t total_bytes (void); - void total_bytes (size_t bytes); - // Increment count by <bytes>. - - virtual int handle_timeout (const ACE_Time_Value &, const void *arg); - // Perform timer-based IO_Handler reconnection. - -protected: - enum - { - MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout. - }; - - int initialize_connection (void); - // Perform the first-time initiation of a connection to the peer. - - int reinitiate_connection (void); - // Reinitiate a connection asynchronously when peers fail. - - void socket_queue_size (void); - // Set the socket queue size. - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK); - // Perform IO_Handler termination. - - Consumer_Map *consumer_map_; - // Pointer to table that maps an event - // to a Set of IO_Handler *'s for output. - - ACE_INET_Addr remote_addr_; - // Address of peer. - - ACE_INET_Addr local_addr_; - // Address of us. - - CONN_ID id_; - // The assigned routing ID of this entry. - - size_t total_bytes_; - // The total number of bytes sent/received on this channel. - - State state_; - // The current state of the channel. - - IO_Handler_Connector *connector_; - // Back pointer to IO_Handler_Connector to reestablish broken - // connections. - - int timeout_; - // Amount of time to wait between reconnection attempts. - - int max_timeout_; - // Maximum amount of time to wait between reconnection attempts. - - char direction_; - // Indicates which direction data flows through the channel ('O' == - // output and 'I' == input). - - int socket_queue_size_; - // Size of the socket queue (0 means "use default"). -}; - -class Supplier_Handler : public IO_Handler - // = TITLE - // Handle reception of Peer events arriving as events. -{ -public: - Supplier_Handler (Consumer_Map *, - IO_Handler_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - // Constructor sets the consumer map pointer. - - virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - // Receive and process peer events. - -protected: - virtual int recv (ACE_Message_Block *&); - // Receive an event from a Supplier. - - int forward (ACE_Message_Block *event); - // Forward the Event to a Consumer. - - ACE_Message_Block *msg_frag_; - // Keep track of event fragment to handle non-blocking recv's from - // Suppliers. -}; - -class Consumer_Handler : public IO_Handler - // = TITLE - // Handle transmission of events to other Peers using a - // single-threaded approach. -{ -public: - Consumer_Handler (Consumer_Map *, - IO_Handler_Connector *, - ACE_Thread_Manager * = 0, - int socket_queue_size = 0); - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send an event to a Consumer (may be queued if necessary). - -protected: - // = We'll allow up to 16 megabytes to be queued per-output - // channel. - enum {QUEUE_SIZE = 1024 * 1024 * 16}; - - virtual int handle_input (ACE_HANDLE); - // Receive and process shutdowns from a Consumer. - - virtual int handle_output (ACE_HANDLE); - // Finish sending event when flow control conditions abate. - - int nonblk_put (ACE_Message_Block *mb); - // Perform a non-blocking put(). - - virtual ssize_t send (ACE_Message_Block *); - // Send an event to a Consumer. -}; - -#endif /* _IO_HANDLER */ diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.cpp b/apps/Gateway/Gateway/IO_Handler_Connector.cpp deleted file mode 100644 index 712b348951d..00000000000 --- a/apps/Gateway/Gateway/IO_Handler_Connector.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include "IO_Handler_Connector.h" -// $Id$ - - -IO_Handler_Connector::IO_Handler_Connector (void) -{ -} - -// Override the connection-failure method to add timer support. -// Note that these timers perform "expoential backoff" to -// avoid rapidly trying to reestablish connections when a link -// goes down. - -int -IO_Handler_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask) -{ - ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR>::AST *stp = 0; - - // Locate the ACE_Svc_Handler corresponding to the socket descriptor. - if (this->handler_map_.find (sd, stp) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n", - sd, "find"), -1); - - IO_Handler *channel = stp->svc_handler (); - - // Schedule a reconnection request at some point in the future - // (note that channel uses an exponential backoff scheme). - if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0, - channel->timeout ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - return 0; -} - -// Initiate (or reinitiate) a connection to the IO_Handler. - -int -IO_Handler_Connector::initiate_connection (IO_Handler *channel, - ACE_Synch_Options &synch_options) -{ - char buf[MAXHOSTNAMELEN]; - - // Mark ourselves as idle so that the various iterators - // will ignore us until we are reconnected. - channel->state (IO_Handler::IDLE); - - if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1 - || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "can't obtain peer's address"), -1); - - // Try to connect to the Peer. - - if (this->connect (channel, channel->remote_addr (), - synch_options, channel->local_addr ()) == -1) - { - if (errno != EWOULDBLOCK) - { - channel->state (IO_Handler::FAILED); - ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n", - "connect", buf)); - - // Reschedule ourselves to try and connect again. - if (synch_options[ACE_Synch_Options::USE_REACTOR]) - { - if (ACE_Service_Config::reactor ()->schedule_timer - (channel, 0, channel->timeout ()) == 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "schedule_timer"), -1); - } - else - // Failures on synchronous connects are reported as errors - // so that the caller can decide how to proceed. - return -1; - } - else - { - channel->state (IO_Handler::CONNECTING); - ACE_DEBUG ((LM_DEBUG, - "(%t) in the process of connecting %s to %s\n", - synch_options[ACE_Synch_Options::USE_REACTOR] - ? "asynchronously" : "synchronously", buf)); - } - } - else - { - channel->state (IO_Handler::ESTABLISHED); - ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n", - buf, channel->get_handle ())); - } - return 0; -} diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.h b/apps/Gateway/Gateway/IO_Handler_Connector.h deleted file mode 100644 index 585428c88ee..00000000000 --- a/apps/Gateway/Gateway/IO_Handler_Connector.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// IO_Handler_Connector.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_IO_HANDLER_CONNECTOR) -#define _IO_HANDLER_CONNECTOR - -#include "ace/Connector.h" -#include "Thr_IO_Handler.h" - -class IO_Handler_Connector : public ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR> - // = TITLE - // A concrete factory class that setups connections to peerds - // and produces a new IO_Handler object to do the dirty work... -{ -public: - IO_Handler_Connector (void); - - // Initiate (or reinitiate) a connection on the IO_Handler. - int initiate_connection (IO_Handler *, - ACE_Synch_Options & = ACE_Synch_Options::synch); - -protected: - // Override the connection-failure method to add timer support. - virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask); -}; - -#endif /* _IO_HANDLER_CONNECTOR */ diff --git a/apps/Gateway/Gateway/Makefile b/apps/Gateway/Gateway/Makefile deleted file mode 100644 index fe2a01095d2..00000000000 --- a/apps/Gateway/Gateway/Makefile +++ /dev/null @@ -1,814 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Gateway. -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = gatewayd -LIB = libGateway.a -SHLIB = libGateway.$(SOEXT) - -FILES = Concrete_Connection_Handlers \ - Config_Files \ - File_Parser \ - Gateway \ - Event_Channel \ - Event_Forwarding_Discriminator \ - Options \ - Connection_Handler \ - Connection_Handler_Acceptor \ - Connection_Handler_Connector - -LSRC = $(addsuffix .cpp,$(FILES)) -LDLIBS = -lGateway -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/Concrete_Connection_Handlers.o .obj/Concrete_Connection_Handlers.so .shobj/Concrete_Connection_Handlers.o .shobj/Concrete_Connection_Handlers.so: Concrete_Connection_Handlers.cpp \ - Event_Channel.h Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \ - Connection_Handler_Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \ - Concrete_Connection_Handlers.h -.obj/Config_Files.o .obj/Config_Files.so .shobj/Config_Files.o .shobj/Config_Files.so: Config_Files.cpp Config_Files.h File_Parser.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - Event.h Options.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i -.obj/File_Parser.o .obj/File_Parser.so .shobj/File_Parser.o .shobj/File_Parser.so: File_Parser.cpp \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - File_Parser.h -.obj/Gateway.o .obj/Gateway.so .shobj/Gateway.o .shobj/Gateway.so: Gateway.cpp Config_Files.h File_Parser.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - Event.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - Event_Channel.h Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Options.h Connection_Handler_Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h Gateway.h -.obj/Event_Channel.o .obj/Event_Channel.so .shobj/Event_Channel.o .shobj/Event_Channel.so: Event_Channel.cpp Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \ - Event_Channel.h Connection_Handler_Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h -.obj/Event_Forwarding_Discriminator.o .obj/Event_Forwarding_Discriminator.so .shobj/Event_Forwarding_Discriminator.o .shobj/Event_Forwarding_Discriminator.so: Event_Forwarding_Discriminator.cpp \ - Event_Forwarding_Discriminator.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i Event.h \ - Consumer_Dispatch_Set.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i -.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i Event.h \ - Options.h $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i -.obj/Connection_Handler.o .obj/Connection_Handler.so .shobj/Connection_Handler.o .shobj/Connection_Handler.so: Connection_Handler.cpp Event_Channel.h \ - Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \ - Connection_Handler_Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \ - Concrete_Connection_Handlers.h -.obj/Connection_Handler_Acceptor.o .obj/Connection_Handler_Acceptor.so .shobj/Connection_Handler_Acceptor.o .shobj/Connection_Handler_Acceptor.so: Connection_Handler_Acceptor.cpp \ - Event_Channel.h Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \ - Connection_Handler_Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h -.obj/Connection_Handler_Connector.o .obj/Connection_Handler_Connector.so .shobj/Connection_Handler_Connector.o .shobj/Connection_Handler_Connector.so: Connection_Handler_Connector.cpp \ - Connection_Handler_Connector.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/Gateway/Gateway/Options.cpp b/apps/Gateway/Gateway/Options.cpp deleted file mode 100644 index 0d93e4cd7fa..00000000000 --- a/apps/Gateway/Gateway/Options.cpp +++ /dev/null @@ -1,258 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#define ACE_BUILD_SVC_DLL - -#include "ace/Get_Opt.h" -#include "Event.h" -#include "Options.h" - -// Static initialization. -Options *Options::instance_ = 0; - -Options * -Options::instance (void) -{ - if (Options::instance_ == 0) - ACE_NEW_RETURN (Options::instance_, Options, 0); - - return Options::instance_; -} - -Options::Options (void) - : locking_strategy_ (0), - performance_window_ (0), - blocking_semantics_ (ACE_NONBLOCK), - socket_queue_size_ (0), - threading_strategy_ (REACTIVE), - options_ (0), - supplier_acceptor_port_ (DEFAULT_GATEWAY_SUPPLIER_PORT), - consumer_acceptor_port_ (DEFAULT_GATEWAY_CONSUMER_PORT), - supplier_connector_port_ (DEFAULT_PEER_SUPPLIER_PORT), - consumer_connector_port_ (DEFAULT_PEER_CONSUMER_PORT), - max_timeout_ (MAX_TIMEOUT), - max_queue_size_ (MAX_QUEUE_SIZE), - connection_id_ (1) -{ - ACE_OS::strcpy (this->connection_config_file_, "connection_config"); - ACE_OS::strcpy (this->consumer_config_file_, "consumer_config"); -} - -int -Options::enabled (int option) const -{ - return ACE_BIT_ENABLED (this->options_, option); -} - -Options::~Options (void) -{ - delete this->locking_strategy_; -} - -ACE_Lock_Adapter<ACE_SYNCH_MUTEX> * -Options::locking_strategy (void) const -{ - return this->locking_strategy_; -} - -void -Options::locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *ls) -{ - this->locking_strategy_ = ls; -} - -int -Options::performance_window (void) const -{ - return this->performance_window_; -} - -CONNECTION_ID & -Options::connection_id (void) -{ - return this->connection_id_; -} - -long -Options::max_timeout (void) const -{ - return this->max_timeout_; -} - -int -Options::blocking_semantics (void) const -{ - return this->blocking_semantics_; -} - -int -Options::socket_queue_size (void) const -{ - return this->socket_queue_size_; -} - -u_long -Options::threading_strategy (void) const -{ - return this->threading_strategy_; -} - -const char * -Options::connection_config_file (void) const -{ - return this->connection_config_file_; -} - -const char * -Options::consumer_config_file (void) const -{ - return this->consumer_config_file_; -} - -u_short -Options::consumer_acceptor_port (void) const -{ - return this->consumer_acceptor_port_; -} - -u_short -Options::supplier_acceptor_port (void) const -{ - return this->supplier_acceptor_port_; -} - -u_short -Options::consumer_connector_port (void) const -{ - return this->consumer_connector_port_; -} - -long -Options::max_queue_size (void) const -{ - return this->max_queue_size_; -} - -u_short -Options::supplier_connector_port (void) const -{ - return this->supplier_connector_port_; -} - -// Parse the "command-line" arguments and set the corresponding flags. - -int -Options::parse_args (int argc, char *argv[]) -{ - // Assign defaults. - ACE_Get_Opt get_opt (argc, - argv, - "a:bC:c:dm:P:p:q:r:t:vw:", - 0); - - for (int c; (c = get_opt ()) != EOF; ) - { - switch (c) - { - case 'a': - { - // Become an Acceptor. - - for (char *flag = ACE_OS::strtok (get_opt.optarg, "|"); - flag != 0; - flag = ACE_OS::strtok (0, "|")) - if (ACE_OS::strncasecmp (flag, "C", 1) == 0) - { - ACE_SET_BITS (this->options_, - Options::CONSUMER_ACCEPTOR); - if (ACE_OS::strlen (flag) > 1) - // Set the Consumer Acceptor port number. - this->consumer_acceptor_port_ = ACE_OS::atoi (flag + 2); - } - else if (ACE_OS::strncasecmp (flag, "S", 1) == 0) - { - ACE_SET_BITS (this->options_, - Options::SUPPLIER_ACCEPTOR); - if (ACE_OS::strlen (flag) > 1) - // Set the Supplier Acceptor port number. - this->supplier_acceptor_port_ = ACE_OS::atoi (flag + 2); - } - } - break; - /* NOTREACHED */ - case 'b': // Use blocking connection establishment. - this->blocking_semantics_ = 1; - break; - case 'C': // Use a different proxy config filename. - ACE_OS::strncpy (this->consumer_config_file_, - get_opt.optarg, - sizeof this->consumer_config_file_); - break; - case 'c': - { - // Become a Connector. - - for (char *flag = ACE_OS::strtok (get_opt.optarg, "|"); - flag != 0; - flag = ACE_OS::strtok (0, "|")) - if (ACE_OS::strncasecmp (flag, "C", 1) == 0) - { - ACE_SET_BITS (this->options_, - Options::CONSUMER_CONNECTOR); - if (ACE_OS::strlen (flag) > 1) - // Set the Consumer Connector port number. - this->consumer_connector_port_ = ACE_OS::atoi (flag + 2); - } - else if (ACE_OS::strncasecmp (flag, "S", 1) == 0) - { - ACE_SET_BITS (this->options_, - Options::SUPPLIER_CONNECTOR); - if (ACE_OS::strlen (flag) > 1) - // Set the Supplier Connector port number. - this->supplier_connector_port_ = ACE_OS::atoi (flag + 2); - } - } - break; - /* NOTREACHED */ - case 'd': // We are debugging. - ACE_SET_BITS (this->options_, - Options::DEBUG); - break; - case 'P': // Use a different consumer config filename. - ACE_OS::strncpy (this->connection_config_file_, - get_opt.optarg, - sizeof this->connection_config_file_); - break; - case 'q': // Use a different socket queue size. - this->socket_queue_size_ = ACE_OS::atoi (get_opt.optarg); - break; - case 't': // Use a different threading strategy. - { - for (char *flag = ACE_OS::strtok (get_opt.optarg, "|"); - flag != 0; - flag = ACE_OS::strtok (0, "|")) - if (ACE_OS::strcmp (flag, "OUTPUT_MT") == 0) - ACE_SET_BITS (this->threading_strategy_, - Options::OUTPUT_MT); - else if (ACE_OS::strcmp (flag, "INPUT_MT") == 0) - ACE_SET_BITS (this->threading_strategy_, - Options::INPUT_MT); - break; - } - case 'v': // Verbose mode. - ACE_SET_BITS (this->options_, - Options::VERBOSE); - break; - case 'w': // Time performance for a designated amount of time. - this->performance_window_ = ACE_OS::atoi (get_opt.optarg); - // Use blocking connection semantics so that we get accurate - // timings (since all connections start at once). - this->blocking_semantics_ = 0; - break; - default: - break; - } - } - - return 0; -} diff --git a/apps/Gateway/Gateway/Options.h b/apps/Gateway/Gateway/Options.h deleted file mode 100644 index da61b8202c3..00000000000 --- a/apps/Gateway/Gateway/Options.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// Options.h -// -// = AUTHOR -// Douglas C. Schmidt -// -// ============================================================================ - -#if !defined (OPTIONS_H) -#define OPTIONS_H - -#include "ace/Synch.h" - -class ACE_Svc_Export Options -{ - // = TITLE - // Singleton that consolidates all Options for a gatewayd. -public: - // = Options that can be enabled/disabled. - enum - { - // = The types of threading strategies. - REACTIVE = 0, - OUTPUT_MT = 1, - INPUT_MT = 2, - - VERBOSE = 01, - DEBUG = 02, - - SUPPLIER_ACCEPTOR = 04, - CONSUMER_ACCEPTOR = 010, - SUPPLIER_CONNECTOR = 020, - CONSUMER_CONNECTOR = 040 - }; - - static Options *instance (void); - // Return Singleton. - - ~Options (void); - // Termination. - - int parse_args (int argc, char *argv[]); - // Parse the arguments and set the options. - - // = Accessor methods. - int enabled (int option) const; - // Determine if an option is enabled. - - ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy (void) const; - // Gets the locking strategy used for serializing access to the - // reference count in <ACE_Message_Block>. If it's 0, then there's - // no locking strategy and we're using a REACTIVE concurrency - // strategy. - - void locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *); - // Set the locking strategy used for serializing access to the - // reference count in <ACE_Message_Block>. - - int performance_window (void) const; - // Number of seconds after connection establishment to report - // throughput. - - int blocking_semantics (void) const; - // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects. - - int socket_queue_size (void) const; - // Size of the socket queue (0 means "use default"). - - u_long threading_strategy (void) const; - // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT. - - u_short supplier_acceptor_port (void) const; - // Our acceptor port number, i.e., the one that we passively listen - // on for connections to arrive from a gatewayd and create a - // Supplier. - - u_short consumer_acceptor_port (void) const; - // Our acceptor port number, i.e., the one that we passively listen - // on for connections to arrive from a gatewayd and create a - // Consumer. - - u_short supplier_connector_port (void) const; - // The connector port number, i.e., the one that we use to actively - // establish connections with a gatewayd and create a Supplier. - - u_short consumer_connector_port (void) const; - // The connector port number, i.e., the one that we use to actively - // establish connections with a gatewayd and create a Consumer. - - const char *connector_host (void) const; - // Our connector port host, i.e., the host running the gatewayd - // process. - - const char *connection_config_file (void) const; - // Name of the connection configuration file. - - const char *consumer_config_file (void) const; - // Name of the consumer map configuration file. - - long max_timeout (void) const; - // The maximum retry timeout delay. - - long max_queue_size (void) const; - // The maximum size of the queue. - - CONNECTION_ID &connection_id (void); - // Returns a reference to the next available connection id; - -private: - enum - { - MAX_QUEUE_SIZE = 1024 * 1024 * 16, - // We'll allow up to 16 megabytes to be queued per-output proxy. - - MAX_TIMEOUT = 32 - // The maximum timeout for trying to re-establish connections. - }; - - Options (void); - // Initialization. - - static Options *instance_; - // Options Singleton instance. - - ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy_; - // Points to the locking strategy used for serializing access to the - // reference count in <ACE_Message_Block>. If it's 0, then there's - // no locking strategy and we're using a REACTIVE concurrency - // strategy. - - int performance_window_; - // Number of seconds after connection establishment to report - // throughput. - - int blocking_semantics_; - // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects. - - int socket_queue_size_; - // Size of the socket queue (0 means "use default"). - - u_long threading_strategy_; - // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT. - - u_long options_; - // Flag to indicate if we want verbose diagnostics. - - u_short supplier_acceptor_port_; - // The acceptor port number, i.e., the one that we passively listen - // on for connections to arrive from a gatewayd and create a - // Supplier. - - u_short consumer_acceptor_port_; - // The acceptor port number, i.e., the one that we passively listen - // on for connections to arrive from a gatewayd and create a - // Consumer. - - u_short supplier_connector_port_; - // The connector port number, i.e., the one that we use to actively - // establish connections with a gatewayd and create a Supplier. - - u_short consumer_connector_port_; - // The connector port number, i.e., the one that we use to actively - // establish connections with a gatewayd and create a Consumer. - - long max_timeout_; - // The maximum retry timeout delay. - - long max_queue_size_; - // The maximum size of the queue. - - CONNECTION_ID connection_id_; - // The next available connection id. - - char connection_config_file_[MAXPATHLEN + 1]; - // Name of the connection configuration file. - - char consumer_config_file_[MAXPATHLEN + 1]; - // Name of the consumer map configuration file. -}; - -#endif /* OPTIONS_H */ diff --git a/apps/Gateway/Gateway/Peer_Message.h b/apps/Gateway/Gateway/Peer_Message.h deleted file mode 100644 index d9e65650095..00000000000 --- a/apps/Gateway/Gateway/Peer_Message.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Peer_Message.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (PEER_MESSAGE) -#define PEER_MESSAGE - -// This is the unique connection identifier that denotes a particular -// Channel in the Gateway. -typedef short CONN_ID; - -class Peer_Addr - // = TITLE - // Peer address is used to identify the source/destination of a - // routing message. -{ -public: - Peer_Addr (CONN_ID cid = -1, u_char lid = 0, u_char pay = 0) - : conn_id_ (cid), logical_id_ (lid), payload_ (pay) {} - - int operator== (const Peer_Addr &pa) const - { - return this->conn_id_ == pa.conn_id_ - && this->logical_id_ == pa.logical_id_ - && this->payload_ == pa.payload_; - } - - CONN_ID conn_id_; - // Unique connection identifier that denotes a particular Channel. - - u_char logical_id_; - // Logical ID. - - u_char payload_; - // Payload type. -}; - - -class Peer_Header - // = TITLE - // Fixed sized header. -{ -public: - typedef u_short ROUTING_ID; - // Type used to route messages from gatewayd. - - enum - { - INVALID_ID = -1 // No peer can validly use this number. - }; - - ROUTING_ID routing_id_; - // Source ID. - - size_t len_; - // Length of the message in bytes. -}; - -class Peer_Message - // = TITLE - // Variable-sized message (buf_ may be variable-sized between - // 0 and MAX_PAYLOAD_SIZE). -{ -public: - enum { MAX_PAYLOAD_SIZE = 1024 }; - // The maximum size of an Peer message (see Peer protocol specs for - // exact #). - - Peer_Header header_; - // Message header. - - char buf_[MAX_PAYLOAD_SIZE]; - // Message payload. -}; - -#endif /* PEER_MESSAGE */ diff --git a/apps/Gateway/Gateway/Routing_Entry.cpp b/apps/Gateway/Gateway/Routing_Entry.cpp deleted file mode 100644 index cc270cfac3a..00000000000 --- a/apps/Gateway/Gateway/Routing_Entry.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// Defines an entry in the Routing Table. -// $Id$ - -#include "Routing_Entry.h" - -Routing_Entry::Routing_Entry (int validity_interval) - : validity_interval_ (validity_interval) -{ - ACE_NEW (this->destinations_, Routing_Entry::ENTRY_SET); -} - -Routing_Entry::~Routing_Entry (void) -{ - delete this->destinations_; -} - -// Get the associated set of destinations. - -Routing_Entry::ENTRY_SET * -Routing_Entry::destinations (void) -{ - return this->destinations_; -} - -// Set the associated set of destinations. - -void -Routing_Entry::destinations (Routing_Entry::ENTRY_SET *s) -{ - this->destinations_ = s; -} - -// Get the current validity interval for this route. - -int -Routing_Entry::validity_interval (void) -{ - return this->validity_interval_; -} - -// Set the current validity interval for this route. - -void -Routing_Entry::validity_interval (int vi) -{ - this->validity_interval_ = vi; -} diff --git a/apps/Gateway/Gateway/Routing_Entry.h b/apps/Gateway/Gateway/Routing_Entry.h deleted file mode 100644 index ab8e0eee53d..00000000000 --- a/apps/Gateway/Gateway/Routing_Entry.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Routing_Entry.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_ROUTING_ENTRY) -#define _ROUTING_ENTRY - -#include "ace/Set.h" - -// Forward reference. -class Channel; - -class Routing_Entry -{ - // = TITLE - // Defines an entry in the Routing_Table. -public: - Routing_Entry (int validity_interval = 0); - ~Routing_Entry (void); - - typedef ACE_Unbounded_Set<Channel *> ENTRY_SET; - typedef ACE_Unbounded_Set_Iterator<Channel *> ENTRY_ITERATOR; - - // = Set/get the associated set of destinations. - ENTRY_SET *destinations (void); - void destinations (ENTRY_SET *); - - // = Set/get current validity interval for this routing entry. - int validity_interval (void); - void validity_interval (int); - -protected: - ENTRY_SET *destinations_; - // The set of destinations; - - int validity_interval_; - // The current validity interval of this link. -}; - -#endif /* _ROUTING_ENTRY */ diff --git a/apps/Gateway/Gateway/Routing_Table.cpp b/apps/Gateway/Gateway/Routing_Table.cpp deleted file mode 100644 index 3ef2f21bc1f..00000000000 --- a/apps/Gateway/Gateway/Routing_Table.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -#if !defined (_ROUTING_TABLE_C) -#define _ROUTING_TABLE_C - - -#include "Routing_Table.h" - -/* Bind the EXT_ID to the INT_ID. */ - -template <class EXT_ID, class INT_ID, class LOCK> int -Routing_Table<EXT_ID, INT_ID, LOCK>::bind (EXT_ID ext_id, INT_ID *int_id) -{ - return this->map_.bind (ext_id, int_id); -} - -/* Find the INT_ID corresponding to the EXT_ID. */ - -template <class EXT_ID, class INT_ID, class LOCK> int -Routing_Table<EXT_ID, INT_ID, LOCK>::find (EXT_ID ext_id, INT_ID *&int_id) -{ - return this->map_.find (ext_id, int_id); -} - -/* Unbind (remove) the EXT_ID from the map. */ - -template <class EXT_ID, class INT_ID, class LOCK> int -Routing_Table<EXT_ID, INT_ID, LOCK>::unbind (EXT_ID ext_id) -{ - return this->map_.unbind (ext_id); -} - -template <class EXT_ID, class INT_ID, class LOCK> -Routing_Iterator<EXT_ID, INT_ID, LOCK>::Routing_Iterator (Routing_Table<EXT_ID, - INT_ID, LOCK> &rt, - int ignore_inactive) - : map_iter_ (rt.map_), - ignore_inactive_ (ignore_inactive) -{ -} - -template <class EXT_ID, class INT_ID, class LOCK> int -Routing_Iterator<EXT_ID, INT_ID, LOCK>::next (INT_ID *&ss) -{ - // Loop in order to skip over inactive entries if necessary. - - for (ACE_Map_Entry<EXT_ID, INT_ID *> *temp = 0; - this->map_iter_.next (temp) != 0; - this->advance ()) - { - // Skip over inactive entries if necessary. - if (temp->int_id_->active () == 0 && this->ignore_inactive_) - continue; - - // Otherwise, return the next item. - ss = temp->int_id_; - return 1; - } - return 0; -} - -template <class EXT_ID, class INT_ID, class LOCK> int -Routing_Iterator<EXT_ID, INT_ID, LOCK>::advance (void) -{ - return this->map_iter_.advance (); -} -#endif /* _ROUTING_TABLE_C */ diff --git a/apps/Gateway/Gateway/Routing_Table.h b/apps/Gateway/Gateway/Routing_Table.h deleted file mode 100644 index 84194f13e49..00000000000 --- a/apps/Gateway/Gateway/Routing_Table.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Routing_Table.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_ROUTING_TABLE_H) -#define _ROUTING_TABLE_H - -#include "ace/Map_Manager.h" - -template <class EXT_ID, class INT_ID, class LOCK> -class Routing_Table -{ - // = TITLE - // Define a generic routing table based on the ACE Map_Manager. - // - // = DESCRIPTION - // We need to have this table, rather than just using the Map_Manager - // directly in order to ignore "inactive" routing entries... -public: - int bind (EXT_ID ext_id, INT_ID *int_id); - // Associate EXT_ID with the INT_ID. - - int find (EXT_ID ext_id, INT_ID *&int_id); - // Break any association of EXID. - - int unbind (EXT_ID ext_id); - // Locate EXID and pass out parameter via INID. If found, - // return 0, else -1. - -public: - ACE_Map_Manager<EXT_ID, INT_ID *, LOCK> map_; - // Map external IDs to internal IDs. -}; - -template <class EXT_ID, class INT_ID, class LOCK> -class Routing_Iterator -{ - // = TITLE - // Define an iterator for the Routing Table. -public: - Routing_Iterator (Routing_Table<EXT_ID, INT_ID, LOCK> &mm, - int ignore_inactive = 1); - int next (INT_ID *&); - int advance (void); - -private: - ACE_Map_Iterator<EXT_ID, INT_ID *, LOCK> map_iter_; - int ignore_inactive_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Routing_Table.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ -#endif /* _ROUTING_TABLE_H */ diff --git a/apps/Gateway/Gateway/Thr_Channel.cpp b/apps/Gateway/Gateway/Thr_Channel.cpp deleted file mode 100644 index 26e385e2727..00000000000 --- a/apps/Gateway/Gateway/Thr_Channel.cpp +++ /dev/null @@ -1,204 +0,0 @@ -#include "Thr_Channel.h" -// $Id$ - -#include "Channel_Connector.h" - -#if defined (ACE_HAS_THREADS) -Thr_Output_Channel::Thr_Output_Channel (ROUTING_TABLE *rt, - Channel_Connector *cc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : Output_Channel (rt, cc, thr_mgr, socket_queue_size) -{ -} - -// This method should be called only when the peer shuts down -// unexpectedly. This method marks the Channel as having failed and -// deactivates the ACE_Message_Queue (to wake up the thread blocked on -// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will -// eventually try to reconnect... - -int -Thr_Output_Channel::handle_input (ACE_HANDLE h) -{ - this->Output_Channel::handle_input (h); - ACE_Service_Config::reactor ()->remove_handler (h, - ACE_Event_Handler::RWE_MASK - | ACE_Event_Handler::DONT_CALL); - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - return 0; -} - -// Initialize the threaded Output_Channel object and spawn a new -// thread. - -int -Thr_Output_Channel::open (void *) -{ - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Register ourselves to receive input events (which indicate that - // the Peer has shut down unexpectedly). - if (ACE_Service_Config::reactor ()->register_handler (this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1); - - if (this->initialize_connection ()) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "initialize_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // messages to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// ACE_Queue up a message for transmission (must not block since all -// Input_Channels are single-threaded). - -int -Thr_Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - // Perform non-blocking enqueue. - return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Transmit messages to the peer (note simplification resulting from -// threads...) - -int -Thr_Output_Channel::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Output_Channel's fd = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread it is OK to block on - // output. - - for (ACE_Message_Block *mb = 0; - this->msg_queue ()->dequeue_head (mb) != -1; ) - if (this->send_peer (mb) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed")); - - ACE_ASSERT (errno == ESHUTDOWN); - - ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Output_Channel %d on handle %d\n", - this->id (), this->get_handle ())); - - this->peer ().close (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->connector_->initiate_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - ACE_OS::sleep (tv); - } - } - - return 0; -} - -Thr_Input_Channel::Thr_Input_Channel (ROUTING_TABLE *rt, - Channel_Connector *cc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : Input_Channel (rt, cc, thr_mgr, socket_queue_size) -{ -} - -int -Thr_Input_Channel::open (void *) -{ - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - if (this->initialize_connection ()) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "initialize_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // messages to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Receive messages from a Peer in a separate thread (note reuse of -// existing code!). - -int -Thr_Input_Channel::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Input_Channel's fd = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread and processes - // messages for one connection it is OK to block on input and - // output. - - while (this->handle_input () != -1) - continue; - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Input_Channel %d on handle %d\n", - this->id (), - this->get_handle ())); - - this->peer ().close (); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->connector_->initiate_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", tv.sec ())); - ACE_OS::sleep (tv); - } - } - return 0; -} - -#endif /* ACE_HAS_THREADS */ diff --git a/apps/Gateway/Gateway/Thr_Channel.h b/apps/Gateway/Gateway/Thr_Channel.h deleted file mode 100644 index a1dc91b1619..00000000000 --- a/apps/Gateway/Gateway/Thr_Channel.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Thr_Channel.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_THR_CHANNEL) -#define _THR_CHANNEL - -#include "Channel.h" - -#if defined (ACE_HAS_THREADS) -class Thr_Output_Channel : public Output_Channel - // = TITLE - // Runs each Output Channel in a separate thread. -{ -public: - Thr_Output_Channel (ROUTING_TABLE *, - Channel_Connector *, - ACE_Thread_Manager *, - int socket_queue_size); - - virtual int open (void *); - // Initialize the threaded Output_Channel object and spawn a new - // thread. - - virtual int handle_input (ACE_HANDLE); - // Called when Peer shutdown unexpectedly. - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send a message to a peer. - - virtual int svc (void); - // Transmit peer messages. -}; - -class Thr_Input_Channel : public Input_Channel - // = TITLE - // Runs each Input Channel in a separate thread. -{ -public: - Thr_Input_Channel (ROUTING_TABLE *, - Channel_Connector *, - ACE_Thread_Manager *, - int socket_queue_size); - - virtual int open (void *); - // Initialize the object and spawn a new thread. - - virtual int svc (void); - // Transmit peer messages. -}; -#endif /* ACE_HAS_THREADS */ -#endif /* _THR_CHANNEL */ diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.cpp b/apps/Gateway/Gateway/Thr_IO_Handler.cpp deleted file mode 100644 index 109cfad9c3f..00000000000 --- a/apps/Gateway/Gateway/Thr_IO_Handler.cpp +++ /dev/null @@ -1,204 +0,0 @@ -#include "Thr_IO_Handler.h" -// $Id$ - -#include "IO_Handler_Connector.h" - -#if defined (ACE_HAS_THREADS) -Thr_Consumer_Handler::Thr_Consumer_Handler (Consumer_Map *consumer_map, - IO_Handler_Connector *ioc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : Consumer_Handler (consumer_map, ioc, thr_mgr, socket_queue_size) -{ -} - -// This method should be called only when the peer shuts down -// unexpectedly. This method marks the IO_Handler as having failed and -// deactivates the ACE_Message_Queue (to wake up the thread blocked on -// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will -// eventually try to reconnect... - -int -Thr_Consumer_Handler::handle_input (ACE_HANDLE h) -{ - this->Consumer_Handler::handle_input (h); - ACE_Service_Config::reactor ()->remove_handler (h, - ACE_Event_Handler::RWE_MASK - | ACE_Event_Handler::DONT_CALL); - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - return 0; -} - -// Initialize the threaded Consumer_Handler object and spawn a new -// thread. - -int -Thr_Consumer_Handler::open (void *) -{ - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Register ourselves to receive input events (which indicate that - // the Peer has shut down unexpectedly). - if (ACE_Service_Config::reactor ()->register_handler (this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1); - - if (this->initialize_connection ()) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "initialize_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // messages to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// ACE_Queue up a message for transmission (must not block since all -// Supplier_Handlers are single-threaded). - -int -Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - // Perform non-blocking enqueue. - return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Transmit messages to the peer (note simplification resulting from -// threads...) - -int -Thr_Consumer_Handler::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Consumer_Handler's fd = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread it is OK to block on - // output. - - for (ACE_Message_Block *mb = 0; - this->msg_queue ()->dequeue_head (mb) != -1; ) - if (this->send (mb) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed")); - - ACE_ASSERT (errno == ESHUTDOWN); - - ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Consumer_Handler %d on handle %d\n", - this->id (), this->get_handle ())); - - this->peer ().close (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->connector_->initiate_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - ACE_OS::sleep (tv); - } - } - - return 0; -} - -Thr_Supplier_Handler::Thr_Supplier_Handler (Consumer_Map *consumer_map, - IO_Handler_Connector *ioc, - ACE_Thread_Manager *thr_mgr, - int socket_queue_size) - : Supplier_Handler (consumer_map, ioc, thr_mgr, socket_queue_size) -{ -} - -int -Thr_Supplier_Handler::open (void *) -{ - // Set the size of the socket queue. - this->socket_queue_size (); - - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - if (this->initialize_connection ()) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "initialize_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // messages to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Receive messages from a Peer in a separate thread (note reuse of -// existing code!). - -int -Thr_Supplier_Handler::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Supplier_Handler's fd = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread and processes - // messages for one connection it is OK to block on input and - // output. - - while (this->handle_input () != -1) - continue; - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Supplier_Handler %d on handle %d\n", - this->id (), - this->get_handle ())); - - this->peer ().close (); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->connector_->initiate_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", tv.sec ())); - ACE_OS::sleep (tv); - } - } - return 0; -} - -#endif /* ACE_HAS_THREADS */ diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.h b/apps/Gateway/Gateway/Thr_IO_Handler.h deleted file mode 100644 index ee056b35361..00000000000 --- a/apps/Gateway/Gateway/Thr_IO_Handler.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Thr_IO_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_THR_IO_HANDLER) -#define _THR_IO_HANDLER - -#include "IO_Handler.h" - -#if defined (ACE_HAS_THREADS) -class Thr_Consumer_Handler : public Consumer_Handler - // = TITLE - // Runs each Output IO_Handler in a separate thread. -{ -public: - Thr_Consumer_Handler (Consumer_Map *, - IO_Handler_Connector *, - ACE_Thread_Manager *, - int socket_queue_size); - - virtual int open (void *); - // Initialize the threaded Consumer_Handler object and spawn a new - // thread. - - virtual int handle_input (ACE_HANDLE); - // Called when Peer shutdown unexpectedly. - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send a message to a peer. - - virtual int svc (void); - // Transmit peer messages. -}; - -class Thr_Supplier_Handler : public Supplier_Handler - // = TITLE - // Runs each Input IO_Handler in a separate thread. -{ -public: - Thr_Supplier_Handler (Consumer_Map *, - IO_Handler_Connector *, - ACE_Thread_Manager *, - int socket_queue_size); - - virtual int open (void *); - // Initialize the object and spawn a new thread. - - virtual int svc (void); - // Transmit peer messages. -}; -#endif /* ACE_HAS_THREADS */ -#endif /* _THR_IO_HANDLER */ diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp b/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp deleted file mode 100644 index f316e4e82bf..00000000000 --- a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp +++ /dev/null @@ -1,211 +0,0 @@ -// $Id$ - -#include "Event_Channel.h" -#include "Thr_Proxy_Handler.h" - -#if defined (ACE_HAS_THREADS) -Thr_Consumer_Proxy::Thr_Consumer_Proxy (ACE_Event_Channel &ec, - const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - ACE_INT32 conn_id) - : Consumer_Proxy (ec, remote_addr, local_addr, conn_id) -{ -} - -// This method should be called only when the Consumer shuts down -// unexpectedly. This method marks the Proxy_Handler as having failed -// and deactivates the ACE_Message_Queue (to wake up the thread -// blocked on <dequeue_head> in svc()). -// Thr_Output_Handler::handle_close () will eventually try to -// reconnect... - -int -Thr_Consumer_Proxy::handle_input (ACE_HANDLE h) -{ - // Call down to the <Consumer_Proxy> to handle this first. - this->Consumer_Proxy::handle_input (h); - - ACE_Service_Config::reactor ()->remove_handler - (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - return 0; -} - -// Initialize the threaded Consumer_Proxy object and spawn a new -// thread. - -int -Thr_Consumer_Proxy::open (void *) -{ - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call back to the <Event_Channel> to complete our initialization. - else if (this->event_channel_.complete_proxy_connection (this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1); - - // Register ourselves to receive input events (which indicate that - // the Consumer has shut down unexpectedly). - else if (ACE_Service_Config::reactor ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // events to Consumers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Queue up an event for transmission (must not block since -// Supplier_Proxys may be single-threaded). - -int -Thr_Consumer_Proxy::put (ACE_Message_Block *mb, ACE_Time_Value *) -{ - // Perform non-blocking enqueue. - return this->msg_queue ()->enqueue_tail - (mb, (ACE_Time_Value *) &ACE_Time_Value::zero); -} - -// Transmit events to the peer (note simplification resulting from -// threads...) - -int -Thr_Consumer_Proxy::svc (void) -{ - - for (;;) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) connected! Thr_Consumer_Proxy's handle = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread it is OK to block on - // output. - - for (ACE_Message_Block *mb = 0; - this->msg_queue ()->dequeue_head (mb) != -1; - ) - { - if (this->send (mb) == -1) - ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed")); - } - - ACE_ASSERT (errno == ESHUTDOWN); - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Consumer_Proxy %d on handle %d\n", - this->id (), this->get_handle ())); - - this->peer ().close (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->event_channel_.initiate_proxy_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - - ACE_OS::sleep (tv); - } - } - - return 0; -} - -Thr_Supplier_Proxy::Thr_Supplier_Proxy (ACE_Event_Channel &ec, - const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - ACE_INT32 conn_id) - : Supplier_Proxy (ec, remote_addr, local_addr, conn_id) -{ -} - -int -Thr_Supplier_Proxy::open (void *) -{ - // Turn off non-blocking I/O. - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1); - - // Call back to the <Event_Channel> to complete our initialization. - else if (this->event_channel_.complete_proxy_connection (this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1); - - // Reactivate message queue. If it was active then this is the - // first time in and we need to spawn a thread, otherwise the queue - // was inactive due to some problem and we've already got a thread. - else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n")); - // Become an active object by spawning a new thread to transmit - // events to peers. - return this->activate (THR_NEW_LWP | THR_DETACHED); - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n")); - return 0; - } -} - -// Receive events from a Peer in a separate thread (note reuse of -// existing code!). - -int -Thr_Supplier_Proxy::svc (void) -{ - for (;;) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) connected! Thr_Supplier_Proxy's handle = %d\n", - this->peer ().get_handle ())); - - // Since this method runs in its own thread and processes events - // for one connection it is OK to call down to the - // <Supplier_Proxy::handle_input> method, which blocks on input. - - while (this->handle_input () != -1) - continue; - - ACE_DEBUG ((LM_DEBUG, - "(%t) shutting down threaded Supplier_Proxy %d on handle %d\n", - this->id (), this->get_handle ())); - - this->peer ().close (); - - // Deactivate the queue while we try to get reconnected. - this->msg_queue ()->deactivate (); - - for (this->timeout (1); - // Default is to reconnect synchronously. - this->event_channel_.initiate_proxy_connection (this) == -1; ) - { - ACE_Time_Value tv (this->timeout ()); - ACE_ERROR ((LM_ERROR, - "(%t) reattempting connection, sec = %d\n", - tv.sec ())); - ACE_OS::sleep (tv); - } - } - return 0; -} - -#endif /* ACE_HAS_THREADS */ diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.h b/apps/Gateway/Gateway/Thr_Proxy_Handler.h deleted file mode 100644 index 275bc87b320..00000000000 --- a/apps/Gateway/Gateway/Thr_Proxy_Handler.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// Thr_Proxy_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (_THR_IO_HANDLER) -#define _THR_IO_HANDLER - -#include "Proxy_Handler.h" - -#if defined (ACE_HAS_THREADS) -class Thr_Consumer_Proxy : public Consumer_Proxy - // = TITLE - // Runs each Output Proxy_Handler in a separate thread. -{ -public: - Thr_Consumer_Proxy (ACE_Event_Channel &, - const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - ACE_INT32 conn_id); - - virtual int open (void *); - // Initialize the threaded Consumer_Proxy object and spawn a new - // thread. - - virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0); - // Send a message to a peer. - -protected: - virtual int handle_input (ACE_HANDLE); - // Called when Peer shutdown unexpectedly. - - virtual int svc (void); - // Transmit peer messages. -}; - -class Thr_Supplier_Proxy : public Supplier_Proxy - // = TITLE - // Runs each Input Proxy_Handler in a separate thread. -{ -public: - Thr_Supplier_Proxy (ACE_Event_Channel &, - const ACE_INET_Addr &remote_addr, - const ACE_INET_Addr &local_addr, - ACE_INT32 conn_id); - - virtual int open (void *); - // Initialize the object and spawn a new thread. - -protected: - virtual int svc (void); - // Transmit peer messages. -}; -#endif /* ACE_HAS_THREADS */ -#endif /* _THR_IO_HANDLER */ diff --git a/apps/Gateway/Gateway/cc_config b/apps/Gateway/Gateway/cc_config deleted file mode 100644 index 96f9ebdedd7..00000000000 --- a/apps/Gateway/Gateway/cc_config +++ /dev/null @@ -1,10 +0,0 @@ -# Conn ID Hostname Remote Port Direction Max Retry Delay Local Port -# ------- -------- ---- --------- --------------- ---------- - 1 tango.cs 10004 I 32 20000 -# 2 tango.cs 10004 O 32 - 3 merengue.cs 10004 O 32 20001 -# 4 mambo.cs 10004 O 32 20000 -# 5 lambada.cs 10004 O 32 20000 -# 6 tango.cs 10004 O 32 20000 -# 7 tango.cs 5001 I 32 -# 8 tango.cs 5002 O 32 diff --git a/apps/Gateway/Gateway/connection_config b/apps/Gateway/Gateway/connection_config deleted file mode 100644 index ce6fa6b4adf..00000000000 --- a/apps/Gateway/Gateway/connection_config +++ /dev/null @@ -1,55 +0,0 @@ -# Configuration file that the gatewayd process uses to determine -# connection information about proxies. -# -# The following provides an explanation for the fields in this file, -# and how they relate to fields in the corresponding "consumer_config" -# file. -# -# 1. Connection ID -- Each Connection Handler is given a unique ID -# that is used in the "consumer_config" file to specify to which -# Consumers the Event Channel will forward incoming events from -# Suppliers using that connection. The Connection ID field is the -# "key" that is used to match up connections in this file with the -# Consumer subscription requests in the "consumer_config" file. -# The connection ids should start at 1 and monotonically increase -# by increments of 1. This makes it possible for the Gateway to -# properly allocate connection ids for Peers that connect to it. -# -# 2. Host -- The host name where the Supplier/Consumer peerd -# process is running. -# -# 3. Remote Port -- The port number where the remote -# Supplier/Consumer peerd process is listening on. -# If this is a '*' character it is an indication to the -# Gateway to use the "default value," e.g., which can be provided -# on the command-line, etc. -# -# 4. Handler Role -- i.e., Consumer ('C') or Supplier ('S') -# -# 5. Max Retry Timeout -- The maximum amount of time that we'll -# wait between retry attempts (these start at 1 second and -# double until they reach the Max Retry Timeout). -# If this is a '*' character it is an indication to the -# Gateway to use the "default value," e.g., which can be provided -# on the command-line, etc. -# -# 6. Local Port -- The port number that we want to use for -# our local Proxy connection. If this is the value 0 or the '*' -# character, then we'll let the socket implementation pick this -# value for us. -# -# 7. Priority -- Each Consumer/Supplier can be given a priority -# that will determine its importance relative to other -# Consumers/Suppliers (this feature isn't implemented yet). -# -# Connection Host Remote Handler Max Retry Local Priority -# ID Port Role Timeout Port -# ---------- -------- ------ ------ ---------- ----- -------- - 1 flamenco * S * * 1 - 2 lindy * C * * 1 -# 3 mambo.cs * C * * 1 -# 4 lambada.cs * C * * 1 -# 5 lambada.cs * C * * 1 -# 6 tango.cs * C * * 1 -# 7 tango.cs * S * * 1 -# 8 tango.cs * C * * 1 diff --git a/apps/Gateway/Gateway/consumer_config b/apps/Gateway/Gateway/consumer_config deleted file mode 100644 index 1aaa3fc4028..00000000000 --- a/apps/Gateway/Gateway/consumer_config +++ /dev/null @@ -1,35 +0,0 @@ -# Configuration file that the gatewayd process uses to determine which -# Consumers will receive events from which Suppliers. For now, the -# Gateway only allows Consumers to "subscribe" to receive events from -# particular Suppliers. A more flexible implementation will allow -# Consumers to subscribe to particular types of events, as well. -# -# The following provides an explanation for the fields in this file, -# and how they relate to fields in the corresponding "connection_config" -# file. -# -# 1. Connection ID -- Each Connection Handler is given a unique ID -# that is used in the "consumer_config" file to specify to which -# Consumers the Event Channel will forward incoming events from -# Suppliers. The Connection ID field is the "key" that is used to -# match up Consumer subscription requests in this file with -# connections in the "connection_config" file. -# -# 2. Event Type -- Indicates the type of the event. Consumers -# can use this to only subscribe to certain types of events. -# This feature is currently not implemented. -# -# 3. Consumers -- Indicates which Consumers will receive events sent -# from this Proxy/Supplier ID, i.e., Consumers can subscribe to -# receive events from particular Suppliers. Note that more than -# one Consumer can subscribe to the same Supplier event, i.e., -# we support logical "multicast" (which is currently implemented -# using multi-point unicast via TCP/IP). -# -# Connection Event Consumers -# ID Type -# ---------- ---- --------- - 1 0 2 -# 2 0 3,4 -# 3 0 4 -# 4 0 5 diff --git a/apps/Gateway/Gateway/gatewayd.cpp b/apps/Gateway/Gateway/gatewayd.cpp deleted file mode 100644 index 213400fcd60..00000000000 --- a/apps/Gateway/Gateway/gatewayd.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// gateway -// -// = FILENAME -// peerd.h -// -// = DESCRIPTION -// Driver for the gateway daemon (gatewayd). Note that this is -// completely generic code due to the Service Configurator -// framework! -// -// = AUTHOR -// Douglas C. Schmidt -// -// ============================================================================ - -#include "ace/Service_Config.h" -#include "Gateway.h" - -int -main (int argc, char *argv[]) -{ - if (ACE_OS::access (ACE_DEFAULT_SVC_CONF, F_OK) != 0) - { - // Use static linking. - ACE_Service_Object_Ptr sp = ACE_SVC_INVOKE (Gateway); - - if (sp->init (argc - 1, argv + 1) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - 1); - - // Run forever, performing the configured services until we - // are shut down by a SIGINT/SIGQUIT signal. - - ACE_Reactor::run_event_loop (); - - // Destructor of <ACE_Service_Object_Ptr> automagically call - // <fini>. - } - else - { - if (ACE_Service_Config::open (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "open"), - 1); - else // Use dynamic linking. - - // Run forever, performing the configured services until we are - // shut down by a signal (e.g., SIGINT or SIGQUIT). - - ACE_Reactor::run_event_loop (); - } - return 0; -} diff --git a/apps/Gateway/Gateway/gatewayd.dsp b/apps/Gateway/Gateway/gatewayd.dsp deleted file mode 100644 index 609c1901758..00000000000 --- a/apps/Gateway/Gateway/gatewayd.dsp +++ /dev/null @@ -1,57 +0,0 @@ -# Microsoft Developer Studio Project File - Name="gatewayd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=gatewayd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak" CFG="gatewayd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gatewayd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Gateway.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "gatewayd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\gatewayd.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/rt_config b/apps/Gateway/Gateway/rt_config deleted file mode 100644 index e951a0f09be..00000000000 --- a/apps/Gateway/Gateway/rt_config +++ /dev/null @@ -1,7 +0,0 @@ -# Conn ID Logical ID Payload Destinations -# ------- ---------- ------- ------------ -# 1 1 0 3,4,5 - 1 1 0 3 - 3 1 0 3 -# 4 1 0 4 -# 5 1 0 5 diff --git a/apps/Gateway/Gateway/svc.conf b/apps/Gateway/Gateway/svc.conf deleted file mode 100644 index 9b35a7dcbd6..00000000000 --- a/apps/Gateway/Gateway/svc.conf +++ /dev/null @@ -1,3 +0,0 @@ -#static Svc_Manager "-d -p 2913" -dynamic Gateway Service_Object * ./Gateway:_make_Gateway() active "-b -d -c C|S -a C|S -P connection_config -C consumer_config" - |