diff options
Diffstat (limited to 'netsvcs/lib')
-rw-r--r-- | netsvcs/lib/Client_Logging_Handler.cpp | 359 | ||||
-rw-r--r-- | netsvcs/lib/Client_Logging_Handler.h | 25 | ||||
-rw-r--r-- | netsvcs/lib/Logging_Strategy.cpp | 130 | ||||
-rw-r--r-- | netsvcs/lib/Logging_Strategy.h | 25 | ||||
-rw-r--r-- | netsvcs/lib/Makefile | 478 | ||||
-rw-r--r-- | netsvcs/lib/Name_Handler.cpp | 723 | ||||
-rw-r--r-- | netsvcs/lib/Name_Handler.h | 24 | ||||
-rw-r--r-- | netsvcs/lib/README | 270 | ||||
-rw-r--r-- | netsvcs/lib/Server_Logging_Handler.cpp | 443 | ||||
-rw-r--r-- | netsvcs/lib/Server_Logging_Handler.h | 26 | ||||
-rw-r--r-- | netsvcs/lib/TS_Clerk_Handler.cpp | 805 | ||||
-rw-r--r-- | netsvcs/lib/TS_Clerk_Handler.h | 23 | ||||
-rw-r--r-- | netsvcs/lib/TS_Server_Handler.cpp | 324 | ||||
-rw-r--r-- | netsvcs/lib/TS_Server_Handler.h | 24 | ||||
-rw-r--r-- | netsvcs/lib/Token_Handler.cpp | 880 | ||||
-rw-r--r-- | netsvcs/lib/Token_Handler.h | 26 | ||||
-rw-r--r-- | netsvcs/lib/netsvcs.mak | 1055 | ||||
-rw-r--r-- | netsvcs/lib/netsvcs.mdp | bin | 47616 -> 0 bytes |
18 files changed, 0 insertions, 5640 deletions
diff --git a/netsvcs/lib/Client_Logging_Handler.cpp b/netsvcs/lib/Client_Logging_Handler.cpp deleted file mode 100644 index 20212064353..00000000000 --- a/netsvcs/lib/Client_Logging_Handler.cpp +++ /dev/null @@ -1,359 +0,0 @@ -// $Id$ - -// Client_Logging_Handler.cpp - -#define ACE_BUILD_SVC_DLL -#include "ace/Service_Config.h" -#include "ace/Connector.h" -#include "ace/Get_Opt.h" -#include "ace/SOCK_Connector.h" -#include "ace/SOCK_Stream.h" -#include "ace/FIFO_Recv_Msg.h" -#include "Client_Logging_Handler.h" - -class ACE_Svc_Export ACE_Client_Logging_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // This client logging daemon is a mediator that receives logging - // records from local applications processes and forwards them to - // the server logging daemon running on another host. -{ -public: - // = Initialization and termination. - - ACE_Client_Logging_Handler (const char rendezvous[]); - // Default constructor. - - virtual int open (void * = 0); - // Activate this instance of the <ACE_Client_Logging_Handler> - // (called by the <ACE_Client_Logging_Connector>). - - virtual ACE_HANDLE get_handle (void) const; - // Return the handle of the message_fifo_; - - virtual int close (u_long); - // Called when object is removed from the ACE_Reactor. - -protected: - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - // Handle SIGPIPE. - - virtual int handle_input (ACE_HANDLE); - // Receive logging records from applications. - - virtual int handle_exception (ACE_HANDLE); - // Receive logging records from applications. This is necessary to handle - // madness with UNIX select, which can't deal with MSG_BAND data easily due - // to its overly simple interface... This just calls <handle_input>. - - virtual int handle_output (ACE_HANDLE); - // Called back when it's ok to send. - - int send (ACE_Log_Record &log_record); - // Send the <log_record> to the logging server. - - ACE_FIFO_Recv_Msg message_fifo_; - // Message queue we use to receive logging records from clients. - - ACE_HANDLE logging_output_; - // This is either a SOCKET (if we're connected to a logging server) - // or ACE_STDOUT. - - static void stderr_output (int = 0); -}; - -ACE_Client_Logging_Handler::ACE_Client_Logging_Handler (const char rendezvous[]) - : logging_output_ (ACE_STDOUT) -{ - if (ACE_OS::unlink (rendezvous) == -1 && errno == EACCES) - ACE_ERROR ((LM_ERROR, "%p\n", "unlink")); - - else if (this->message_fifo_.open (rendezvous) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "open")); - - // Register message FIFO to receive input from clients. Note that - // we need to put the EXCEPT_MASK here to deal with SVR4 MSG_BAND - // data correctly... - else if (ACE_Service_Config::reactor ()->register_handler - (this->message_fifo_.get_handle (), this, - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::EXCEPT_MASK) == -1) - ACE_ERROR ((LM_ERROR, "%n: %p\n", - "register_handler (message_fifo)")); - ACE_DEBUG ((LM_DEBUG, - "opened fifo at %s on handle %d\n", - rendezvous, - this->message_fifo_.get_handle ())); -} - -// This is called when a <send> to the logging server fails... - -int -ACE_Client_Logging_Handler::handle_signal (int, siginfo_t *, ucontext_t *) -{ - ACE_TRACE ("ACE_Client_Logging_Connector::handle_signal"); - return -1; -} - -int -ACE_Client_Logging_Handler::open (void *) -{ - ACE_INET_Addr server_addr; - - this->logging_output_ = this->peer ().get_handle (); - - // Register ourselves to receive SIGPIPE so we can attempt - // reconnections. - if (ACE_Service_Config::reactor ()->register_handler (SIGPIPE, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n", - "register_handler (SIGPIPE)"), -1); - - // Figure out what remote port we're really bound to. - else if (this->peer ().get_remote_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Client Logging Daemon, " - "connected to port %d on handle %d\n", - server_addr.get_port_number (), - this->peer ().get_handle ())); - return 0; -} - -/* VIRTUAL */ ACE_HANDLE -ACE_Client_Logging_Handler::get_handle (void) const -{ - ACE_TRACE ("ACE_Client_Logging_Handler::get_handle"); - return this->message_fifo_.get_handle (); -} - -// Receive a logging record from an application. - -int -ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle) -{ - if (handle == this->message_fifo_.get_handle ()) - { - // We're getting a logging message from a local application. - - ACE_Log_Record log_record; - ACE_Str_Buf msg ((void *) &log_record, - 0, sizeof log_record); - - ACE_DEBUG ((LM_DEBUG, "in handle_input\n")); - if (this->message_fifo_.recv (msg) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_FIFO_Recv_Msg::recv"), -1); - else if (this->send (log_record) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), 0); - return 0; - } - else if (handle == this->peer ().get_handle ()) - { - // We're getting a message from the logging server! - ACE_ASSERT (!"this shouldn't happen yet...\n"); - } - return 0; -} - -// Receive a logging record from an application send via a non-0 MSG_BAND... -// This just calls handle_input(). - -int -ACE_Client_Logging_Handler::handle_exception (ACE_HANDLE handle) -{ - return this->handle_input (handle); -} - -// Called when object is removed from the ACE_Reactor - -int -ACE_Client_Logging_Handler::close (u_long) -{ - ACE_DEBUG ((LM_DEBUG, "shutting down!!!\n")); - - if (ACE_Service_Config::reactor ()->remove_handler - (this->message_fifo_.get_handle (), - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::EXCEPT_MASK | ACE_Event_Handler::DONT_CALL) == -1) - ACE_ERROR ((LM_ERROR, "%n: %p\n", - "remove_handler (message_fifo)")); - - this->message_fifo_.close (); - this->destroy (); - return 0; -} - -int -ACE_Client_Logging_Handler::handle_output (ACE_HANDLE) -{ - return 0; -} - -// Encodes the contents of log_record object using network byte-order -// and sends it to the logging server. - -int -ACE_Client_Logging_Handler::send (ACE_Log_Record &log_record) -{ - if (this->logging_output_ == ACE_STDOUT) - log_record.print ("<localhost>", 0, stderr); - else - { - long len = log_record.length (); - long encoded_len = htonl (len); - - log_record.encode (); - - if (this->peer ().send (4, &encoded_len, sizeof encoded_len, - (char *) &log_record, len) == -1) - // Switch over to logging to stdout for now. In the long - // run, we'll need to queue up the message, try to - // reestablish a connection, and then send the queued data - // once we've reconnect to the logging server. - this->logging_output_ = ACE_STDOUT; - } - - return 0; -} - -class ACE_Client_Logging_Connector : public ACE_Connector<ACE_Client_Logging_Handler, ACE_SOCK_CONNECTOR> - // = TITLE - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Connector>. -{ -protected: - // = Dynamic linking hooks. - virtual int init (int argc, char *argv[]); - // Called when service is linked. - - virtual int fini (void); - // Called when service is unlinked. - - virtual int info (char **strp, size_t length) const; - // Called to determine info about the service. - - // = Scheduling hooks. - virtual int suspend (void); - virtual int resume (void); - -private: - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - - const char *server_host_; - // Host where the logging server is located. - - u_short server_port_; - // Port number where the logging server is listening for - // connections. - - ACE_INET_Addr server_addr_; - // Address of the logging server. - - const char *rendezvous_key_; - // Filename where the FIFO will listen for application logging - // records. - - ACE_Client_Logging_Handler *handler_; - // Pointer to the handler that does the work. -}; - -int -ACE_Client_Logging_Connector::fini (void) -{ - this->handler_->close (0); - return 0; -} - -int -ACE_Client_Logging_Connector::info (char **strp, size_t length) const -{ - char buf[BUFSIZ]; - - ACE_OS::sprintf (buf, "%d/%s %s", - this->server_addr_.get_port_number (), "tcp", - "# client logging daemon\n"); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strncpy (*strp, buf, length); - return ACE_OS::strlen (buf); -} - -int -ACE_Client_Logging_Connector::init (int argc, char *argv[]) -{ - ACE_LOG_MSG->open ("Client Logging Service"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - ACE_NEW_RETURN (this->handler_, - ACE_Client_Logging_Handler (this->rendezvous_key_), - -1); - - // Establish connection with the server. - if (this->connect (this->handler_, - this->server_addr_, - ACE_Synch_Options::synch) == -1) - ACE_ERROR ((LM_ERROR, "%p, using stdout\n", - "can't connect to logging server")); - return 0; -} - -int -ACE_Client_Logging_Connector::parse_args (int argc, char *argv[]) -{ - this->rendezvous_key_ = ACE_DEFAULT_RENDEZVOUS; - this->server_port_ = ACE_DEFAULT_LOGGING_SERVER_PORT; - this->server_host_ = ACE_DEFAULT_SERVER_HOST; - - ACE_Get_Opt get_opt (argc, argv, "h:k:p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'h': - this->server_host_ = get_opt.optarg; - break; - case 'k': - this->rendezvous_key_ = get_opt.optarg; - break; - case 'p': - this->server_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - - this->server_addr_.set (this->server_port_, this->server_host_); - return 0; -} - -int -ACE_Client_Logging_Connector::suspend (void) -{ - // To be done... - return 0; -} - -int -ACE_Client_Logging_Connector::resume (void) -{ - // To be done... - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the -// single-threaded logging server. - -ACE_SVC_FACTORY_DEFINE (ACE_Client_Logging_Connector) - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Connector<ACE_Client_Logging_Handler, ACE_SOCK_CONNECTOR>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/netsvcs/lib/Client_Logging_Handler.h b/netsvcs/lib/Client_Logging_Handler.h deleted file mode 100644 index 04e5ae9a0de..00000000000 --- a/netsvcs/lib/Client_Logging_Handler.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Client_Logging_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_CLIENT_LOGGER_H) -#define ACE_CLIENT_LOGGER_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_Client_Logging_Connector) - -#endif /* ACE_CLIENT_LOGGER_H */ diff --git a/netsvcs/lib/Logging_Strategy.cpp b/netsvcs/lib/Logging_Strategy.cpp deleted file mode 100644 index a0cddc36176..00000000000 --- a/netsvcs/lib/Logging_Strategy.cpp +++ /dev/null @@ -1,130 +0,0 @@ -// Logging_Strategy.cpp -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "iostream.h" -#include "fstream.h" -#include "ace/Get_Opt.h" - -#include "ace/Service_Object.h" -#include "Logging_Strategy.h" - -class ACE_Logging_Strategy : public ACE_Service_Object - // = TITLE - // This class provides the hooks to control the output produced - // by any of the network services. - // - // = DESCRIPTION - // Depending upon when this service is invoked and with what - // flags, the output of other network services can be - // controlled. The output can be streamed to stderr, to a file, - // to a logging daemon, or it can be set to be "silent". -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. -private: - void tokenize (char *flag_string); - // Tokenize to set all the flags - u_long flags_; - char *filename_; -}; - -// Parse the string containing all the flags and set the flags accordingly -void -ACE_Logging_Strategy::tokenize (char *flag_string) -{ - char *flag; - if ((flag = ACE_OS::strtok (flag_string, "|")) != NULL) - { - while (flag) - { - if (ACE_OS::strcmp (flag, "STDERR") == 0) - ACE_SET_BITS (this->flags_, ACE_Log_Msg::STDERR); - else if (ACE_OS::strcmp (flag, "LOGGER") == 0) - ACE_SET_BITS (this->flags_, ACE_Log_Msg::LOGGER); - else if (ACE_OS::strcmp (flag, "OSTREAM") == 0) - ACE_SET_BITS (this->flags_, ACE_Log_Msg::OSTREAM); - else if (ACE_OS::strcmp (flag, "VERBOSE") == 0) - ACE_SET_BITS (this->flags_, ACE_Log_Msg::VERBOSE); - else if (ACE_OS::strcmp (flag, "SILENT") == 0) - ACE_SET_BITS (this->flags_, ACE_Log_Msg::SILENT); - - // Get the next flag - flag = ACE_OS::strtok(0, "|"); - } - } -} - -int -ACE_Logging_Strategy::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Logging_Strategy::parse_args"); - char *temp; - - this->flags_ = 0; - this->filename_ = ACE_DEFAULT_LOGFILE; - - ACE_LOG_MSG->open ("Logging_Strategy"); - - ACE_Get_Opt get_opt (argc, argv, "f:s:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'f': - temp = get_opt.optarg; - // Now tokenize the string to get all the flags - this->tokenize (temp); - break; - case 's': - // Ensure that the OSTREAM flag is set - ACE_SET_BITS (this->flags_, ACE_Log_Msg::OSTREAM); - this->filename_ = get_opt.optarg; - break; - default: - break; - } - } - return 0; -} - -int -ACE_Logging_Strategy::init (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Logging_Strategy::init"); - - // Use the options hook to parse the command line arguments. - this->parse_args (argc, argv); - - // Check if any flags were specified. If none were specified, let - // the default behavior take effect. - if (this->flags_ != 0) - { - // Clear all flags - ACE_Log_Msg::instance()->clr_flags (ACE_Log_Msg::STDERR | - ACE_Log_Msg::LOGGER | - ACE_Log_Msg::OSTREAM | - ACE_Log_Msg::VERBOSE | - ACE_Log_Msg::SILENT); - // Check if OSTREAM bit is set - if (ACE_BIT_ENABLED (this->flags_, ACE_Log_Msg::OSTREAM)) - { - // Create a new ofstream to direct output to the file - ofstream *output_file = new ofstream (this->filename_); - ACE_Log_Msg::instance()->msg_ostream (output_file); - } - // Now set the flags for Log_Msg - ACE_Log_Msg::instance()->set_flags (this->flags_); - } - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the Logging_Strategy. - -ACE_SVC_FACTORY_DEFINE (ACE_Logging_Strategy) diff --git a/netsvcs/lib/Logging_Strategy.h b/netsvcs/lib/Logging_Strategy.h deleted file mode 100644 index 733003eebae..00000000000 --- a/netsvcs/lib/Logging_Strategy.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Logging_Strategy.h -// -// = AUTHOR -// Prashant Jain -// -// ============================================================================ - -#if !defined (ACE_LOGGING_STRATEGY_H) -#define ACE_LOGGING_STRATEGY_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_Logging_Strategy) - -#endif /* ACE_LOGGING_STRATEGY_H */ diff --git a/netsvcs/lib/Makefile b/netsvcs/lib/Makefile deleted file mode 100644 index 7f2caec6a8c..00000000000 --- a/netsvcs/lib/Makefile +++ /dev/null @@ -1,478 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the server-side ACE network services -#---------------------------------------------------------------------------- - -#LIB = libnet_svcs.a -SHLIB = libnet_svcs.so - -FILES = TS_Server_Handler \ - TS_Clerk_Handler \ - Client_Logging_Handler \ - Name_Handler \ - Server_Logging_Handler \ - Token_Handler \ - Logging_Strategy - -DEFS = $(addsuffix .h,$(FILES)) -LSRC = $(addsuffix .cpp,$(FILES)) - -LIBS += -lACE - -BUILD = $(VLIB) $(VSHLIB) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU -include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/TS_Server_Handler.o .shobj/TS_Server_Handler.so: TS_Server_Handler.cpp \ - $(WRAPPER_ROOT)/ace/SString.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/Acceptor.h \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Acceptor.i \ - $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \ - $(WRAPPER_ROOT)/ace/Time_Request_Reply.h \ - TS_Server_Handler.h -.obj/TS_Clerk_Handler.o .shobj/TS_Clerk_Handler.so: TS_Clerk_Handler.cpp \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Connector.h \ - $(WRAPPER_ROOT)/ace/Map_Manager.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Connector.i \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.h \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.i \ - $(WRAPPER_ROOT)/ace/Time_Request_Reply.h \ - $(WRAPPER_ROOT)/ace/SString.h \ - TS_Clerk_Handler.h -.obj/Client_Logging_Handler.o .shobj/Client_Logging_Handler.so: Client_Logging_Handler.cpp \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Connector.h \ - $(WRAPPER_ROOT)/ace/Map_Manager.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Connector.i \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.h \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.i \ - $(WRAPPER_ROOT)/ace/FIFO_Recv_Msg.h \ - $(WRAPPER_ROOT)/ace/FIFO_Recv.h \ - $(WRAPPER_ROOT)/ace/FIFO.h \ - $(WRAPPER_ROOT)/ace/FIFO_Recv.i \ - $(WRAPPER_ROOT)/ace/FIFO_Recv_Msg.i \ - Client_Logging_Handler.h -.obj/Name_Handler.o .shobj/Name_Handler.so: Name_Handler.cpp \ - $(WRAPPER_ROOT)/ace/SString.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/Naming_Context.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/Name_Proxy.h \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/SOCK_Connector.i \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Name_Request_Reply.h \ - $(WRAPPER_ROOT)/ace/Name_Space.h \ - $(WRAPPER_ROOT)/ace/Acceptor.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Acceptor.i \ - $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \ - Name_Handler.h -.obj/Server_Logging_Handler.o .shobj/Server_Logging_Handler.so: Server_Logging_Handler.cpp \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/TLI_Acceptor.h \ - $(WRAPPER_ROOT)/ace/TLI.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/TLI.i \ - $(WRAPPER_ROOT)/ace/TLI_Stream.h \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/TLI_Stream.i \ - $(WRAPPER_ROOT)/ace/TLI_Acceptor.i \ - $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/Acceptor.h \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Acceptor.i \ - Server_Logging_Handler.h -.obj/Token_Handler.o .shobj/Token_Handler.so: Token_Handler.cpp \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Acceptor.h \ - $(WRAPPER_ROOT)/ace/Service_Config.h \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - $(WRAPPER_ROOT)/ace/Thread_Manager.h \ - $(WRAPPER_ROOT)/ace/Thread.h \ - $(WRAPPER_ROOT)/ace/Synch.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \ - $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \ - $(WRAPPER_ROOT)/ace/Synch_T.h \ - $(WRAPPER_ROOT)/ace/Signal.h \ - $(WRAPPER_ROOT)/ace/Set.h \ - $(WRAPPER_ROOT)/ace/Reactor.h \ - $(WRAPPER_ROOT)/ace/Handle_Set.h \ - $(WRAPPER_ROOT)/ace/Timer_Queue.h \ - $(WRAPPER_ROOT)/ace/Token.h \ - $(WRAPPER_ROOT)/ace/Pipe.h \ - $(WRAPPER_ROOT)/ace/Pipe.i \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.h \ - $(WRAPPER_ROOT)/ace/SOCK_IO.h \ - $(WRAPPER_ROOT)/ace/SOCK.h \ - $(WRAPPER_ROOT)/ace/Addr.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.h \ - $(WRAPPER_ROOT)/ace/IPC_SAP.i \ - $(WRAPPER_ROOT)/ace/SOCK.i \ - $(WRAPPER_ROOT)/ace/SOCK_IO.i \ - $(WRAPPER_ROOT)/ace/INET_Addr.h \ - $(WRAPPER_ROOT)/ace/SOCK_Stream.i \ - $(WRAPPER_ROOT)/ace/Reactor.i \ - $(WRAPPER_ROOT)/ace/Proactor.h \ - $(WRAPPER_ROOT)/ace/Message_Block.h \ - $(WRAPPER_ROOT)/ace/Malloc.h \ - $(WRAPPER_ROOT)/ace/Malloc_T.h \ - $(WRAPPER_ROOT)/ace/Memory_Pool.h \ - $(WRAPPER_ROOT)/ace/Mem_Map.h \ - $(WRAPPER_ROOT)/ace/ReactorEx.h \ - $(WRAPPER_ROOT)/ace/Message_Queue.h \ - $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \ - $(WRAPPER_ROOT)/ace/Strategies.h \ - $(WRAPPER_ROOT)/ace/Strategies_T.h \ - $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \ - $(WRAPPER_ROOT)/ace/Svc_Handler.h \ - $(WRAPPER_ROOT)/ace/Synch_Options.h \ - $(WRAPPER_ROOT)/ace/Task.h \ - $(WRAPPER_ROOT)/ace/Task_T.h \ - $(WRAPPER_ROOT)/ace/Acceptor.i \ - $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \ - $(WRAPPER_ROOT)/ace/Token_Request_Reply.h \ - $(WRAPPER_ROOT)/ace/Local_Tokens.h \ - $(WRAPPER_ROOT)/ace/Stack.h \ - $(WRAPPER_ROOT)/ace/Map_Manager.h \ - $(WRAPPER_ROOT)/ace/Token_Collection.h \ - $(WRAPPER_ROOT)/ace/SString.h \ - Token_Handler.h -.obj/Logging_Strategy.o .shobj/Logging_Strategy.so: Logging_Strategy.cpp \ - /pkg/gnu/lib/g++-include/iostream.h \ - /pkg/gnu/lib/g++-include/fstream.h \ - $(WRAPPER_ROOT)/ace/Get_Opt.h \ - $(WRAPPER_ROOT)/ace/ACE.h \ - $(WRAPPER_ROOT)/ace/OS.h \ - $(WRAPPER_ROOT)/ace/Time_Value.h \ - $(WRAPPER_ROOT)/ace/config.h \ - $(WRAPPER_ROOT)/ace/stdcpp.h \ - $(WRAPPER_ROOT)/ace/Trace.h \ - $(WRAPPER_ROOT)/ace/Log_Msg.h \ - $(WRAPPER_ROOT)/ace/Log_Record.h \ - $(WRAPPER_ROOT)/ace/Log_Priority.h \ - $(WRAPPER_ROOT)/ace/Log_Record.i \ - $(WRAPPER_ROOT)/ace/ACE.i \ - $(WRAPPER_ROOT)/ace/Service_Object.h \ - $(WRAPPER_ROOT)/ace/Shared_Object.h \ - $(WRAPPER_ROOT)/ace/Event_Handler.h \ - Logging_Strategy.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/netsvcs/lib/Name_Handler.cpp b/netsvcs/lib/Name_Handler.cpp deleted file mode 100644 index fc4a8b9cb46..00000000000 --- a/netsvcs/lib/Name_Handler.cpp +++ /dev/null @@ -1,723 +0,0 @@ -// Name_Handler.cpp -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "ace/SString.h" -#include "ace/Set.h" -#include "ace/Get_Opt.h" -#include "ace/Naming_Context.h" -#include "ace/Acceptor.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Stream.h" -#include "ace/Name_Request_Reply.h" -#include "Name_Handler.h" - -// Simple macro that does bitwise AND -- useful in table lookup -#define ACE_TABLE_MAP(INDEX, MASK) (INDEX & MASK) - -// Simple macro that does bitwise AND and then right shift bits by 3 -#define ACE_LIST_MAP(INDEX, MASK) (((unsigned long) (INDEX & MASK)) >> 3) - -// Forward declaration. -class ACE_Naming_Context; - -class ACE_Svc_Export ACE_Name_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // Product object created by <ACE_Name_Acceptor>. An - // <ACE_Name_Handler> exchanges messages with a <ACE_Name_Proxy> - // object on the client-side. - // - // = DESCRIPTION - // This class is the main workhorse of the <ACE_Name_Server>. It - // handles client requests to bind, rebind, resolve, and unbind - // names. It also schedules and handles timeouts that are used to - // support "timed waits." Clients used timed waits to bound the - // amount of time they block trying to get a name. -{ - friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning -public: - typedef int (ACE_Name_Handler::*OPERATION) (void); - // Pointer to a member function of ACE_Name_Handler returning int - - typedef int (ACE_Naming_Context::*LIST_OP) (ACE_PWSTRING_SET &, const ACE_WString &); - // Pointer to a member function of ACE_Naming_Context returning int - - typedef ACE_Name_Request (ACE_Name_Handler::*REQUEST) (ACE_WString *); - // Pointer to a member function of ACE_Name_Handler returning ACE_Name_Request - - // = Initialization and termination. - - ACE_Name_Handler (ACE_Thread_Manager * = 0); - // Default constructor. - - virtual int open (void * = 0); - // Activate this instance of the <ACE_Name_Handler> (called by the - // <ACE_Strategy_Acceptor>). - -protected: - // = Helper routines for the operations exported to clients. - - virtual int abandon (void); - // Give up waiting (e.g., when a timeout occurs or a client shuts - // down unexpectedly). - - // = Low level routines for framing requests, dispatching - // operations, and returning replies. - - virtual int recv_request (void); - // Receive, frame, and decode the client's request. - - virtual int dispatch (void); - // Dispatch the appropriate operation to handle the client's - // request. - - virtual int send_reply (ACE_UINT32 status, ACE_UINT32 errnum = 0); - // Create and send a reply to the client. - - virtual int send_request (ACE_Name_Request &); - // Special kind of reply - - // = Demultiplexing hooks. - virtual ACE_HANDLE get_handle (void) const; - // Return the underlying <ACE_HANDLE>. - - virtual int handle_input (ACE_HANDLE); - // Callback method invoked by the <ACE_Reactor> when client events - // arrive. - - // = Timer hook. - virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg); - // Enable clients to limit the amount of time they wait for a name. - -private: - - OPERATION op_table_[ACE_Name_Request::MAX_ENUM]; - // Table of pointers to member functions - - struct LIST_ENTRY - { - LIST_OP operation_; - // A member function pointer that performs the appropriate - // operation (e.g., LIST_NAMES, LIST_VALUES, or LIST_TYPES). - - REQUEST request_factory_; - // A member function pointer that serves as a factory to create a - // request that is passed back to the client. - - char *description_; - // Name of the operation we're dispatching (used for debugging). - }; - - LIST_ENTRY list_table_[ACE_Name_Request::MAX_LIST]; - // This is the table of pointers to functions that we use to - // simplify the handling of list requests. - - ACE_Naming_Context *naming_context_; - // ACE_Naming_Context of this Handler. - - ACE_Name_Request name_request_; - // Cache request from the client. - - ACE_Name_Request name_request_back_; - // Special kind of reply for resolve and listnames. - - ACE_Name_Reply name_reply_; - // Cache reply to the client. - - ACE_INET_Addr addr_; - // Address of client we are connected with. - - ~ACE_Name_Handler (void); - // Ensure dynamic allocation... - - int bind (void); - // Handle binds. - - int rebind (void); - // Handle rebinds. - - int shared_bind (int rebind); - // Handle binds and rebinds. - - int resolve (void); - // Handle find requests. - - int unbind (void); - // Handle unbind requests. - - int lists (void); - // Handle LIST_NAMES, LIST_VALUES, and LIST_TYPES requests. - - int lists_entries (void); - // Handle LIST_NAME_ENTRIES, LIST_VALUE_ENTRIES, and - // LIST_TYPE_ENTRIES requests. - - ACE_Name_Request name_request (ACE_WString *one_name); - // Create a name request. - - ACE_Name_Request value_request (ACE_WString *one_name); - // Create a value request. - - ACE_Name_Request type_request (ACE_WString *one_name); - // Create a type request. -}; - -class ACE_Name_Acceptor : public ACE_Strategy_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR> - // = TITLE - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - -private: - ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler> scheduling_strategy_; - // The scheduling strategy is designed for Reactive services. -}; - -int -ACE_Name_Acceptor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Name_Acceptor::parse_args"); - - this->service_port_ = ACE_DEFAULT_SERVER_PORT; - - ACE_LOG_MSG->open ("Name Service"); - - ACE_Get_Opt get_opt (argc, argv, "p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'p': - this->service_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - - this->service_addr_.set (this->service_port_); - return 0; -} - -int -ACE_Name_Acceptor::init (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Name_Acceptor::init"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - // Set the acceptor endpoint into listen mode (use the Singleton - // global Reactor...). - if (this->open (this->service_addr_, ACE_Service_Config::reactor (), - 0, 0, 0, - &this->scheduling_strategy_, - "Name Server", "ACE naming service") == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n", - "acceptor::open failed", - this->service_addr_.get_port_number ()), -1); - - // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its - // own. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - - ACE_INET_Addr server_addr; - - // Figure out what port we're really bound to. - if (this->acceptor ().get_local_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_local_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Name Server at port %d on handle %d\n", - server_addr.get_port_number (), - this->acceptor ().get_handle ())); - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the Naming -// Server. - -ACE_SVC_FACTORY_DEFINE (ACE_Name_Acceptor) - -// Default constructor. -ACE_Name_Handler::ACE_Name_Handler (ACE_Thread_Manager *tm) - : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm) -{ - ACE_TRACE ("ACE_Name_Handler::ACE_Name_Handler"); - - // Set up pointers to member functions for the top-level dispatching - // of client requests. - this->op_table_[ACE_Name_Request::BIND] = &ACE_Name_Handler::bind; - this->op_table_[ACE_Name_Request::REBIND] = &ACE_Name_Handler::rebind; - this->op_table_[ACE_Name_Request::RESOLVE] = &ACE_Name_Handler::resolve; - this->op_table_[ACE_Name_Request::UNBIND] = &ACE_Name_Handler::unbind; - this->op_table_[ACE_Name_Request::LIST_NAMES] = &ACE_Name_Handler::lists; - this->op_table_[ACE_Name_Request::LIST_NAME_ENTRIES] = &ACE_Name_Handler::lists_entries; - - // Assign references to simplify subsequent code. - LIST_ENTRY &list_names_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_NAMES, - ACE_Name_Request::LIST_OP_MASK)]; - LIST_ENTRY &list_values_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_VALUES, - ACE_Name_Request::LIST_OP_MASK)]; - LIST_ENTRY &list_types_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_TYPES, - ACE_Name_Request::LIST_OP_MASK)]; - - // Set up pointers to member functions for dispatching within the - // LIST_{NAMES,VALUES,TYPES} methods. - - list_names_ref.operation_ = &ACE_Naming_Context::list_names; - list_names_ref.request_factory_ = &ACE_Name_Handler::name_request; - list_names_ref.description_ = "request for LIST_NAMES\n"; - - list_values_ref.operation_ = &ACE_Naming_Context::list_values; - list_values_ref.request_factory_ = &ACE_Name_Handler::value_request; - list_values_ref.description_ = "request for LIST_VALUES\n"; - - list_types_ref.operation_ = &ACE_Naming_Context::list_types; - list_types_ref.request_factory_ = &ACE_Name_Handler::type_request; - list_types_ref.description_ = "request for LIST_TYPES\n"; -} - -// Activate this instance of the ACE_Name_Handler (called by the -// ACE_Name_Acceptor). - -/* VIRTUAL */ int -ACE_Name_Handler::open (void *) -{ - ACE_TRACE ("ACE_Name_Handler::open"); - - // Call down to our parent to register ourselves with the Reactor. - if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (0) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1); - - // Instantiate our associated ACE_Naming_Context - ACE_NEW_RETURN (naming_context_, ACE_Naming_Context (ACE_Naming_Context::NET_LOCAL), -1); - - return 0; -} - -// Create and send a reply to the client. - -/* VIRTUAL */ int -ACE_Name_Handler::send_reply (ACE_UINT32 status, ACE_UINT32 err) -{ - ACE_TRACE ("ACE_Name_Handler::send_reply"); - void *buf; - this->name_reply_.msg_type (status); - this->name_reply_.errnum (err); - - this->name_reply_.init (); - int len = this->name_reply_.encode (buf); - - if (len == -1) - return -1; - - ssize_t n = this->peer ().send (buf, len); - - if (n != len) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n, expected len = %d, actual len = %d", - "send failed", len, n), -1); - else - return 0; -} - -/* VIRTUAL */ int -ACE_Name_Handler::send_request (ACE_Name_Request &request) -{ - ACE_TRACE ("ACE_Name_Handler::send_request"); - void *buffer; - ssize_t length = request.encode (buffer); - - if (length == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "encode failed"), -1); - - // Transmit request via a blocking send. - - if (this->peer ().send_n (buffer, length) != length) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_n failed"), -1); - - return 0; -} - -// Give up waiting (e.g., when a timeout occurs or a client shuts down -// unexpectedly). - -/* VIRTUAL */ int -ACE_Name_Handler::abandon (void) -{ - ACE_TRACE ("ACE_Name_Handler::abandon"); - int failure_reason = errno; - return this->send_reply (ACE_Name_Reply::FAILURE, failure_reason); -} - -// Enable clients to limit the amount of time they'll wait - -/* VIRTUAL */ int -ACE_Name_Handler::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_TRACE ("ACE_Name_Handler::handle_timeout"); - return this->abandon (); -} - -// Return the underlying ACE_HANDLE. - -/* VIRTUAL */ ACE_HANDLE -ACE_Name_Handler::get_handle (void) const -{ - ACE_TRACE ("ACE_Name_Handler::get_handle"); - return this->peer ().get_handle (); -} - -// Dispatch the appropriate operation to handle the client request. - -/* VIRTUAL */ int -ACE_Name_Handler::dispatch (void) -{ - ACE_TRACE ("ACE_Name_Handler::dispatch"); - // Dispatch the appropriate request. - int index = this->name_request_.msg_type (); - - // Invoke the appropriate member function obtained by indexing into - // the op_table_. ACE_TABLE_MAP returns the same index (by bitwise - // AND) for list_names, list_values, and list_types since they are - // all handled by the same method. Similarly, it returns the same - // index for list_name_entries, list_value_entries, and - // list_type_entries. - return (this->*op_table_[ACE_TABLE_MAP (index, ACE_Name_Request::OP_TABLE_MASK)]) (); -} - -// Receive, frame, and decode the client's request. Note, this method -// should use non-blocking I/O. - -/* VIRTUAL */ int -ACE_Name_Handler::recv_request (void) -{ - ACE_TRACE ("ACE_Name_Handler::recv_request"); - // Read the first 4 bytes to get the length of the message This - // implementation assumes that the first 4 bytes are the length of - // the message. - ssize_t n = this->peer ().recv ((void *) &this->name_request_, sizeof (ACE_UINT32)); - - switch (n) - { - case -1: - /* FALLTHROUGH */ - ACE_DEBUG ((LM_DEBUG, "****************** recv_request returned -1\n")); - default: - ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n", - "recv failed", n, sizeof (ACE_UINT32))); - /* FALLTHROUGH */ - case 0: - // We've shutdown unexpectedly, let's abandon the connection. - this->abandon (); - return -1; - /* NOTREACHED */ - case sizeof (ACE_UINT32): - { - // Transform the length into host byte order. - ssize_t length = ntohl (this->name_request_.length ()); - - // Do a sanity check on the length of the message. - if (length > (ssize_t) sizeof this->name_request_) - { - ACE_ERROR ((LM_ERROR, "length %d too long\n", length)); - return this->abandon (); - } - - // Receive the rest of the request message. - // @@ beware of blocking read!!!. - n = this->peer ().recv ((void *) (((char *) &this->name_request_) - + sizeof (ACE_UINT32)), - length - sizeof (ACE_UINT32)); - - // Subtract off the size of the part we skipped over... - if (n != (length - (ssize_t) sizeof (ACE_UINT32))) - { - ACE_ERROR ((LM_ERROR, "%p expected %d, got %d\n", - "invalid length", length, n)); - return this->abandon (); - } - - // Decode the request into host byte order. - if (this->name_request_.decode () == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "decode failed")); - return this->abandon (); - } - } - } - return 0; -} - -// Callback method invoked by the ACE_Reactor when events arrive from -// the client. - -/* VIRTUAL */ int -ACE_Name_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Name_Handler::handle_input"); - - if (this->recv_request () == -1) - return -1; - else - return this->dispatch (); -} - -int -ACE_Name_Handler::bind (void) -{ - ACE_TRACE ("ACE_Name_Handler::bind"); - return this->shared_bind (0); -} - -int -ACE_Name_Handler::rebind (void) -{ - ACE_TRACE ("ACE_Name_Handler::rebind"); - int result = this->shared_bind (1); - return result == 1 ? 0 : result; -} - -int -ACE_Name_Handler::shared_bind (int rebind) -{ - ACE_TRACE ("ACE_Name_Handler::shared_bind"); - ACE_WString a_name (this->name_request_.name (), - this->name_request_.name_len () / sizeof (ACE_USHORT16)); - ACE_WString a_value (this->name_request_.value (), - this->name_request_.value_len () / sizeof (ACE_USHORT16)); - int result; - if (rebind == 0) - { - ACE_DEBUG ((LM_DEBUG, "request for BIND \n")); - result = this->naming_context_->bind (a_name, a_value, - this->name_request_.type ()); - } - else - { - ACE_DEBUG ((LM_DEBUG, "request for REBIND \n")); - result = this->naming_context_->rebind (a_name, a_value, - this->name_request_.type ()); - if (result == 1) - result = 0; - } - if (result == 0) - return this->send_reply (ACE_Name_Reply::SUCCESS); - else return this->send_reply (ACE_Name_Reply::FAILURE); -} - -int -ACE_Name_Handler::resolve (void) -{ - ACE_TRACE ("ACE_Name_Handler::resolve"); - ACE_DEBUG ((LM_DEBUG, "request for RESOLVE \n")); - ACE_WString a_name (this->name_request_.name (), - this->name_request_.name_len () / sizeof (ACE_USHORT16)); - - // The following will deliver our reply back to client we - // pre-suppose success (indicated by type RESOLVE). - - ACE_WString avalue; - char *atype; - if (this->naming_context_->resolve (a_name, avalue, atype) == 0) - { - ACE_Name_Request nrq (ACE_Name_Request::RESOLVE, - NULL, 0, - avalue.rep (), - avalue.length () * sizeof (ACE_USHORT16), - atype, ACE_OS::strlen (atype)); - return this->send_request (nrq); - } - - ACE_Name_Request nrq (ACE_Name_Request::BIND, NULL, 0, NULL, 0, NULL, 0); - this->send_request (nrq); - return 0; -} - -int -ACE_Name_Handler::unbind (void) -{ - ACE_TRACE ("ACE_Name_Handler::unbind"); - ACE_DEBUG ((LM_DEBUG, "request for UNBIND \n")); - ACE_WString a_name (this->name_request_.name (), - this->name_request_.name_len () / sizeof (ACE_USHORT16)); - if (this->naming_context_->unbind (a_name) == 0) - return this->send_reply (ACE_Name_Reply::SUCCESS); - else return this->send_reply (ACE_Name_Reply::FAILURE); -} - -ACE_Name_Request -ACE_Name_Handler::name_request (ACE_WString *one_name) -{ - ACE_TRACE ("ACE_Name_Handler::name_request"); - return ACE_Name_Request (ACE_Name_Request::LIST_NAMES, - one_name->rep (), - one_name->length () * sizeof (ACE_USHORT16), - NULL, 0, - NULL, 0); -} - -ACE_Name_Request -ACE_Name_Handler::value_request (ACE_WString *one_value) -{ - ACE_TRACE ("ACE_Name_Handler::value_request"); - return ACE_Name_Request (ACE_Name_Request::LIST_VALUES, - NULL, 0, - one_value->rep (), - one_value->length () * sizeof (ACE_USHORT16), - NULL, 0); -} - -ACE_Name_Request -ACE_Name_Handler::type_request (ACE_WString *one_type) -{ - ACE_TRACE ("ACE_Name_Handler::type_request"); - return ACE_Name_Request (ACE_Name_Request::LIST_TYPES, - NULL, 0, - NULL, 0, - one_type->char_rep (), - one_type->length ()); -} - -int -ACE_Name_Handler::lists (void) -{ - ACE_TRACE ("ACE_Name_Handler::lists"); - - ACE_PWSTRING_SET set; - ACE_WString pattern (this->name_request_.name (), - this->name_request_.name_len () / sizeof (ACE_USHORT16)); - - // Get the index into the list table - int index = ACE_LIST_MAP (this->name_request_.msg_type (), - ACE_Name_Request::LIST_OP_MASK); - - // Print the message type - ACE_DEBUG ((LM_DEBUG, list_table_[index].description_)); - - // Call the appropriate method - if ((this->naming_context_->*list_table_[index].operation_) (set, pattern) != 0) - { - // None found so send blank request back - ACE_Name_Request end_rq (ACE_Name_Request::MAX_ENUM, NULL, 0, NULL, 0, NULL, 0); - - if (this->send_request (end_rq) == -1) - return -1; - } - else - { - ACE_WString *one_entry = 0; - - for (ACE_Unbounded_Set_Iterator<ACE_WString> set_iterator (set); - set_iterator.next (one_entry) !=0; - set_iterator.advance()) - { - ACE_Name_Request nrq ((this->*list_table_[index].request_factory_) (one_entry)); - - // Create a request by calling the appropriate method obtained - // by accessing into the table. Then send the request across. - if (this->send_request (nrq) == -1) - return -1; - } - - // Send last message indicator. - ACE_Name_Request nrq (ACE_Name_Request::MAX_ENUM, - NULL, 0, - NULL, 0, - NULL, 0); - return this->send_request (nrq); - } - return 0; -} - -int -ACE_Name_Handler::lists_entries (void) -{ - ACE_TRACE ("ACE_Name_Handler::lists_entries"); - ACE_BINDING_SET set; - ACE_WString pattern (this->name_request_.name (), - this->name_request_.name_len () / sizeof (ACE_USHORT16)); - - int (ACE_Naming_Context::*ptmf) (ACE_BINDING_SET &, const ACE_WString &); - - switch (this->name_request_.msg_type ()) - { - case ACE_Name_Request::LIST_NAME_ENTRIES: - ACE_DEBUG ((LM_DEBUG, "request for LIST_NAME_ENTRIES \n")); - ptmf = &ACE_Naming_Context::list_name_entries; - break; - case ACE_Name_Request::LIST_VALUE_ENTRIES: - ACE_DEBUG ((LM_DEBUG, "request for LIST_VALUE_ENTRIES \n")); - ptmf = &ACE_Naming_Context::list_value_entries; - break; - case ACE_Name_Request::LIST_TYPE_ENTRIES: - ACE_DEBUG ((LM_DEBUG, "request for LIST_TYPE_ENTRIES \n")); - ptmf = &ACE_Naming_Context::list_type_entries; - break; - default: - return -1; - } - - if ((this->naming_context_->*ptmf) (set, pattern) != 0) - { - // None found so send blank request back. - ACE_Name_Request end_rq (ACE_Name_Request::MAX_ENUM, NULL, 0, NULL, 0, NULL, 0); - - if (this->send_request (end_rq) == -1) - return -1; - } - else - { - ACE_Name_Binding *one_entry = 0; - - for (ACE_Unbounded_Set_Iterator<ACE_Name_Binding> set_iterator (set); - set_iterator.next (one_entry) !=0; - set_iterator.advance()) - { - ACE_Name_Request mynrq (this->name_request_.msg_type (), - one_entry->name_.rep (), - one_entry->name_.length () * sizeof (ACE_USHORT16), - one_entry->value_.rep (), - one_entry->value_.length () * sizeof (ACE_USHORT16), - one_entry->type_, - ACE_OS::strlen (one_entry->type_)); - - if (this->send_request (mynrq) == -1) - return -1; - } - - // send last message indicator - ACE_Name_Request nrq (ACE_Name_Request::MAX_ENUM, NULL, 0, NULL, 0, NULL, 0); - - if (this->send_request (nrq) == -1) - return -1; - } - return 0; -} - -ACE_Name_Handler::~ACE_Name_Handler (void) -{ - ACE_TRACE ("ACE_Name_Handler::~ACE_Name_Handler"); - ACE_DEBUG ((LM_DEBUG, "closing down Handle %d\n", - this->get_handle ())); - - // Delete associated Naming Context. - delete this->naming_context_; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Strategy_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>; -template class ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/netsvcs/lib/Name_Handler.h b/netsvcs/lib/Name_Handler.h deleted file mode 100644 index 52cfebed863..00000000000 --- a/netsvcs/lib/Name_Handler.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Name_Handler.h -// -// = AUTHOR -// Prashant Jain, Gerhard Lenzer and Douglas C. Schmidt -// -// ============================================================================ - -#if !defined (ACE_NAME_HANDLER_H) -#define ACE_NAME_HANDLER_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_Name_Acceptor) - -#endif /* ACE_NAME_HANDLER_H */ diff --git a/netsvcs/lib/README b/netsvcs/lib/README deleted file mode 100644 index a85ce77b82f..00000000000 --- a/netsvcs/lib/README +++ /dev/null @@ -1,270 +0,0 @@ -This directory provides a number of network services that utilize the -ACE wrapper features. - - . Logging_Strategy -- Controls the output of all services that are - invoked along with the Logging_Strategy service. Please see below for - details on how to control the output. - - . [Thr_]Server_Logging_Handler.* -- Implements server portion - of the ACE distributed logging service. Both multi-threaded - and single-threaded implementations are provided. - - . Client_Logging_Handler.* -- Implements the client portion - of the ACE distributed logging service. - - . Name_Handler.* -- Implements a distributed name service that - allows applications to bind, find, and unbind names in - a distributed system. - - . Token_Handler.* -- Implements a distributed token service - that allows distributed applications to acquire and release - locks in a distributed system. - - . Time_Handler.* -- Implements a distributed time service that - allows distributed applications to synchronize their - time. - -The remainder of this README file explains how these services work. - -==================== Logging_Strategy Service ==================== -The Logging_Strategy Service can be used to control the output of all the -network services. It can be invoked with certain flags that determine -where the output of all the services should go. - -The Logging_Strategy Service sets the flags in ACE_Log_Msg which in turn -controls all the streams through macros such as ACE_DEBUG, ACE_ERROR, -and ACE_ERROR_RETURN. - -If default behavior is required, the Logging_Strategy Service need not be -invoked or it can be invoked with no paramaters. Here are the command -line arguments that can be given to the Logging_Strategy Service: -<CODE> - - -f <flag1>|<flag2>|<flag3> (etc...) -</CODE> - where a flag can be any of the following: - - STDERR -- Write messages to stderr. - LOGGER -- Write messages to the local client logger deamon. - OSTREAM -- Write messages to the ostream that gets created by - specifying a filename (see below) - VERBOSE -- Display messages in a verbose manner - SILENT -- Do not print messages at all - -Note: If more than one flag is specified, the flags need to be 'OR'ed -as above syntax shows. Make sure there is no space in between the flag -and '|'. - - -s filename - - If the OSTREAM flag is set, this can be used to specify the -filename where the output should be directed. Note that if the OSTREAM -flag is set and no filename is specified, ACE_DEFAULT_LOGFILE will be -used to write the output to. - -Examples: - -To direct output only to STDERR, specify command line arguments as: - "-f STDERR" - -To direct output to both STDERR and a file called "mylog", specify -command line arguments as: - "-f STDERR|OSTREAM -s mylog" - -==================== Name Service ==================== - -This file describes the principles of the Name_Server server test -application. - -1. Startup configuration - --------------------- - -To communicate with the server process, a client needs to know the -INET_Addr, where the server offers its service. Class Name_Options -holds all the configuration information of the Name Service. This -consists of : - - - nameserver_port : Port number where the server process expects requests - - nameserver_host : hostname where the server process resides - - namespace_dir : directory that holds the NameBinding databases - - process_name : name of the client process (argv[0]), NameBindings of - a ProcessLocal namespace are stored in file - "namespace_dir/process_name". NameBindings of NodeGlobal - namespace are stored in "namespace_dir/localnames". - NameBindings of Net_Local namespace are stored in file - "namespace_dir/globalnames" on the server host. - These configuration parameters are passed to the process as commandline - arguments to main: - -p nameserver port - -h nameserver host - -l namespace directory - - The main program _must_ initialize an instance of Name_Options with name - name_options (since the shared libraries depend on this). Main should - look like : - - #include "ace/Name_Options.h" - - Name_Options name_options; - - int main(int argc, char **argv) - { - name_options.process_name(argv[0]); - name_options.parse_args (argc, argv); - ...... - } - -See the examples in the tests subdirectory of -...Name_Server/Client-Server/client and -...Name_Server/Client-Server/server - - -2. Class Naming_Context - ------------------- - -This is the main workhorse of the Name Service. It is used by client -processes as well as by the server process. It manages all accesses to -the appropriate NameBinding database (that is the file where -NameBindings are stored) and it also manages the communication between -a client process and the server (by using class Name_Proxy, which is a -private member of Naming_Context). (Note: no IPC is necessary, if a -client process runs on the same host as the server). - -The strategy for all public methods of Naming_Context is common : - -1. Transform the format of the arguments to ACE_SString (which is - internally used) if necessary. - -2. check if work can be done locally : -> call the appropriate local_* method - otherwise call the appropriate global_* method. - -Removing Name_Bindings from the database (either with unbind or -rebind) uses the ACE_Malloc class configured with the -ACE_MMAP_Memory_Pool. This allows memory to be reclaimed when -name/value tuples are unbound. - -3. Class Name_Server - ---------------- - -The Name_Server registers in its run method its Name_Acceptor -(instantiated with the INET_Addr) at the Reactor, to receive incoming -requests. - -4. Class Name_Acceptor - ------------------ - -The Name_Acceptor allocates in its handle_input routine a new instance -of class Name_Handler on the heap, and accepts connections into this -Name_Handler. - -5. Class Name_Handler - ----------------- - -The Name_Handler represents the server side of communication between -client and server. It interprets incoming requests to the Net_Local -namespace and dele- gates the requests to its own Naming_Context -(which is the Net_Local namespace on the current host). For -communication it uses the helper classes Name_Request (which up to now -needs not only contain the request from the client, but also the -appropriate reply from the server) and Name_Reply. Note that I want -to change the usage of these classes to make the structure of the -software clearer. - -6. Dependencies - ------------ - -As the Name service must be able to handle wide character strings, it -uses ACE_WString String classes. - - -==================== Time Service ==================== - -The following is a description of the Time Server clerk and server -services: - -1. Startup configuration - --------------------- - -Configuring a server requires specifying the port number of the -server. This can be specified as a command line argument as follows: - - -p <port number> - -A clerk communicates with one or more server processes. To communicate -with the server process, a client needs to know the INET_Addr, where -the server offers its service. The configuration parameters namely the -server port and server host are passed as command line arguments when -starting up the clerk service as follows: - - -h <server host1>:<server port1> -h <server host2>:<server port2> ... - -Note that multiple servers can be specified in this manner for the -clerk to connect to when it starts up. The server name and the port -number need to be concatenated and separated by a ":". In addition, -the timeout value can also be specified as a command line argument as -follows: - - -t timeout - -The timeout value specifies the time interval at which the clerk -should query the servers for time updates. - -By default a Clerk does a non-blocking connect to a server. This can -be overridden and a Clerk can be made to do a blocking connect by -using the -b flag. - -Here is what a config file would look like for starting up a server at -port 20202: - -dynamic Time_Service Service_Object * ../lib/libnet_svcs.so:_make_ACE_TS_Server_Acceptor() "-p 20202" - -Here is what a config file would look like for starting up a clerk -that needs to connect to two servers, one at tango and one at lambada: - -dynamic Time_Server_test Service_Object *../lib/libnet_svcs.so:_make_ACE_TS_Clerk_Connector () "-h tango:20202 -h lambada:20202 -t 4" - -[Note: these files would vary if the services are run on NT] - - -2. Class TS_Server_Handler - ----------------------- - -TS_Server_Handler represents the server side of communication between -clerk and server. It interprets incoming requests for time updates, -gets the system time, creates a reply in response to the request and -then sends the reply to the clerk from which it received the request. -For communication it uses the helper class Time_Request. - -3. Class TS_Server_Acceptor - ------------------------ - -TS_Server_Acceptor allocates in its handle_input routine a new instance -of class TS_Server_Handler on the heap, and accepts connections into this -TS_Server_Handler. - -4. Class TS_Clerk_Handler - ---------------------- - -TS_Clerk_Handler represents the clerk side of communication between -clerk and server. It generates requests for time updates every timeout -period and then sends these requests to all the servers it is -connected to asynchronously. It receives the replies to these requests -from the servers through its handle_input method and then adjusts the -time using the roundtrip estimate. It caches this time which is later -retrieved by TS_Clerk_Processor. - -5. Class TS_Clerk_Processor - ------------------------ - -TS_Clerk_Processor creates a new instance of TS_Clerk_Handler for -every server connection it needs to create. It periodically calls -send_request() of every TS_Clerk_Handler to send a request for time -update to all the servers. In the process, it retrieves the latest -time cached by each TS_Clerk_Handler and then uses it to compute its -notion of the local system time. - -6. Algorithms - ---------- - -Currently, updating the system time involves taking the average of all -the times received from the servers.
\ No newline at end of file diff --git a/netsvcs/lib/Server_Logging_Handler.cpp b/netsvcs/lib/Server_Logging_Handler.cpp deleted file mode 100644 index 67c67ee4e74..00000000000 --- a/netsvcs/lib/Server_Logging_Handler.cpp +++ /dev/null @@ -1,443 +0,0 @@ -// $Id$ -// Server_Logging_Handler.cpp - -#define ACE_BUILD_SVC_DLL -#include "ace/Synch.h" -#include "ace/TLI_Acceptor.h" -#include "ace/SOCK_Acceptor.h" - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "Server_Logging_Handler.h" - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> -class ACE_Server_Logging_Handler : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_SYNCH_2> -{ - // = TITLE - // Product object created by an <ACE_Server_Logging_Acceptor>. An - // <ACE_Server_Logging_Handler> receives, frames, and processes logging - // records. - // - // = DESCRIPTION - // Defines the classes that perform server logging daemon - // functionality. -public: - ACE_Server_Logging_Handler (ACE_Thread_Manager * = 0); - - virtual int open (void * = 0); - // Hook called by Server_Logging_Acceptor when connection is - // established. - - virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - // Process remote logging records. - -protected: - int handle_logging_record (void); - // Receive the logging record from a client. - -#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) - static COUNTER request_count_; - // Count the number of logging records that arrive. -#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */ - - char host_name_[MAXHOSTNAMELEN + 1]; - // Name of the host we are connected to. -}; - -#if !defined (ACE_HAS_TLI) -#define LOGGING_PEER_ACCEPTOR ACE_SOCK_ACCEPTOR -#define LOGGING_PEER_STREAM ACE_SOCK_STREAM -#else /* use sockets */ -#define LOGGING_PEER_ACCEPTOR ACE_TLI_ACCEPTOR -#define LOGGING_PEER_STREAM ACE_TLI_STREAM -#endif /* ACE_HAS_TLI */ - -#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) -// Track number of requests. -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> -COUNTER ACE_Server_Logging_Handler<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_2>::request_count_ = (COUNTER) 0; -#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */ - -typedef ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH> - SERVER_LOGGING_HANDLER; - -class ACE_Server_Logging_Acceptor : public ACE_Strategy_Acceptor<SERVER_LOGGING_HANDLER, LOGGING_PEER_ACCEPTOR> - // = TITLE - // This class implements the ACE single-threaded logging service. - // - // = DESCRIPTION - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - -private: - ACE_Schedule_All_Reactive_Strategy<SERVER_LOGGING_HANDLER> scheduling_strategy_; - // The scheduling strategy is designed for Reactive services. -}; - -int -ACE_Server_Logging_Acceptor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Server_Logging_Acceptor::parse_args"); - - this->service_port_ = ACE_DEFAULT_SERVER_PORT; - - ACE_LOG_MSG->open ("Logging Service"); - - ACE_Get_Opt get_opt (argc, argv, "p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'p': - this->service_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - - this->service_addr_.set (this->service_port_); - return 0; -} - -int -ACE_Server_Logging_Acceptor::init (int argc, - char *argv[]) -{ - ACE_TRACE ("ACE_Server_Logging_Acceptor::init"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - // Set the acceptor endpoint into listen mode (use the Singleton - // global Reactor...). - if (this->open (this->service_addr_, ACE_Service_Config::reactor (), - 0, 0, 0, - &this->scheduling_strategy_, - "Logging Server", "ACE single-threaded logging service") == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n", - "acceptor::open failed", - this->service_addr_.get_port_number ()), -1); - - // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its - // own. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - - ACE_INET_Addr server_addr; - - // Figure out what port we're really bound to. - if (this->acceptor ().get_local_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_local_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Logging Server at port %d on handle %d\n", - server_addr.get_port_number (), - this->acceptor ().get_handle ())); - return 0; -} - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> -ACE_Server_Logging_Handler<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_2>::ACE_Server_Logging_Handler (ACE_Thread_Manager *) -{ - this->host_name_[0] = '\0'; // Initialize to a known state. -} - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> int -ACE_Server_Logging_Handler<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_2>::handle_logging_record (void) -{ - ssize_t len; - // Lock used to serialize access to std output - // (this should be in the class, but the SunC++ compiler is broken...) - static ACE_SYNCH_MUTEX lock; - - // Perform two recv's to emulate record-oriented semantiCLS. - // Note that this code is not entirely portable since it - // relies on the fact that sizeof (ssize_t) is the same - // on both the sender and receiver side. To correctly - // handle this is painful, and we leave it as an exercise - // for the reader ;-). - - ssize_t n = this->peer ().recv (&len, sizeof len); - - switch (n) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, "%p at host %s\n", - "server logger", this->host_name_), -1); - /* NOTREACHED */ - case 0: - ACE_ERROR_RETURN ((LM_ERROR, "closing log daemon at host %s\n", - this->host_name_), -1); - /* NOTREACHED */ - case sizeof (ssize_t): - { - ACE_Log_Record lp; - -#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) - u_long count = ++this->request_count_; - ACE_DEBUG ((LM_DEBUG, "request count = %d\n", count)); -#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */ - - len = ntohl (len); - n = this->peer ().recv_n ((void *) &lp, len); - if (n != len) - ACE_ERROR_RETURN ((LM_ERROR, "len = %d, %p at host %s\n", - n, "server logger", this->host_name_), -1); - /* NOTREACHED */ - - lp.decode (); - - if (lp.length () == n) - { - // Serialize output, if necessary (i.e., if we are running - // in separate threads). - // ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, lock, -1); - - lp.print (this->host_name_, 0, stderr); - } - else - ACE_ERROR ((LM_ERROR, "error, lp.length = %d, n = %d\n", - lp.length (), n)); - break; - } - default: - ACE_ERROR_RETURN ((LM_ERROR, "%p at host %s\n", - "server logger", this->host_name_), -1); - /* NOTREACHED */ - } - - return n; -} - -// Hook called by Server_Logging_Acceptor when connection is -// established. - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> int -ACE_Server_Logging_Handler<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_2>::open (void *) -{ - // Register ourselves with the Reactor to enable subsequent - // dispatching. - if (ACE_Service_Config::reactor ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - return -1; - - ACE_PEER_STREAM_ADDR client_addr; - - // Determine the address of the client and display it. - if (this->peer ().get_remote_addr (client_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_OS::strncpy (this->host_name_, client_addr.get_host_name (), MAXHOSTNAMELEN + 1); - - ACE_DEBUG ((LM_DEBUG, "(%t) accepted connection from host %s on fd %d\n", - client_addr.get_host_name (), this->peer ().get_handle ())); - - // Shut off non-blocking IO if it was enabled... - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "disable"), -1); - - return 0; -} - -// Callback routine for handling the reception of remote logging -// transmissions. - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> int -ACE_Server_Logging_Handler<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_2>::handle_input (ACE_HANDLE) -{ - return this->handle_logging_record () > 0 ? 0 : -1; -} - -#if !defined (ACE_HAS_THREADS) -typedef u_long COUNTER; -#define ACE_LOGGER_SYNCH ACE_NULL_SYNCH -#else -typedef ACE_Atomic_Op <ACE_Thread_Mutex, u_long> COUNTER; -#define ACE_LOGGER_SYNCH ACE_MT_SYNCH -#endif /* ACE_HAS_THREADS */ - -class ACE_Svc_Export ACE_Thr_Server_Logging_Handler : public ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, COUNTER, ACE_LOGGER_SYNCH> - // = TITLE - // Product object created by a <ACE_Thr_Server_Logging_Acceptor>. An - // <ACE_Thr_Server_Logging_Handler> receives, frames, and processes - // logging records. - // - // = DESCRIPTION - // Each client is handled in its own separate thread. -{ -public: - ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager * = 0); - - virtual int open (void * = 0); - // Override activation definition in the ACE_Svc_Handler class (will - // spawn a new thread if we've got threads). - - virtual int svc (void); - // Process remote logging records. -}; - -class ACE_Thr_Server_Logging_Acceptor : public ACE_Strategy_Acceptor<ACE_Thr_Server_Logging_Handler, LOGGING_PEER_ACCEPTOR> - // = TITLE - // This class implements the ACE multi-threaded logging service. - // - // = DESCRIPTION - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - -private: - ACE_Schedule_All_Threaded_Strategy<ACE_Thr_Server_Logging_Handler> scheduling_strategy_; - // The scheduling strategy is designed for multi-threaded services. -}; - -int -ACE_Thr_Server_Logging_Acceptor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Thr_Server_Logging_Acceptor::parse_args"); - - this->service_port_ = ACE_DEFAULT_SERVER_PORT; - - ACE_LOG_MSG->open ("Logging Service"); - - ACE_Get_Opt get_opt (argc, argv, "p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'p': - this->service_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - - this->service_addr_.set (this->service_port_); - return 0; -} - -int -ACE_Thr_Server_Logging_Acceptor::init (int argc, - char *argv[]) -{ - ACE_TRACE ("ACE_Thr_Server_Logging_Acceptor::init"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - // Set the acceptor endpoint into listen mode (use the Singleton - // global Reactor...). - if (this->open (this->service_addr_, ACE_Service_Config::reactor (), - 0, 0, 0, - &this->scheduling_strategy_, - "Thr Logging Server", "ACE multi-threaded logging service") == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n", - "acceptor::open failed", - this->service_addr_.get_port_number ()), -1); - - // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its - // own. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - - ACE_INET_Addr server_addr; - - // Figure out what port we're really bound to. - if (this->acceptor ().get_local_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_local_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Threaded Logging Server at port %d on handle %d\n", - server_addr.get_port_number (), - this->acceptor ().get_handle ())); - return 0; -} - -// The following are "Factories" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the -// single-threaded and multi-threaded logging server. - -ACE_SVC_FACTORY_DEFINE (ACE_Server_Logging_Acceptor) -ACE_SVC_FACTORY_DEFINE (ACE_Thr_Server_Logging_Acceptor) - -// No-op... - -ACE_Thr_Server_Logging_Handler::ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager *) -{ -} - -// Override definition in the ACE_Svc_Handler class (spawn a new -// thread if we're configured with ACE_HAS_THREADS!). - -int -ACE_Thr_Server_Logging_Handler::open (void *) -{ - // Shut off non-blocking IO since now we can block in our own - // thread! - if (this->peer ().disable (ACE_NONBLOCK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "disable"), -1); - - ACE_INET_Addr client_addr; - - // Determine the address of the client and display it. - if (this->peer ().get_remote_addr (client_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_OS::strncpy (this->host_name_, client_addr.get_host_name (), MAXHOSTNAMELEN + 1); - - ACE_DEBUG ((LM_DEBUG, "(%t) accepted connection from host %s on fd %d\n", - client_addr.get_host_name (), this->peer ().get_handle ())); - - // Spawn a new thread of control to handle logging records with the - // client. Note that this implicitly uses the - // ACE_Service_Config::thr_mgr () to control all the threads. - if (this->activate (THR_BOUND | THR_DETACHED) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "spawn"), -1); - return 0; -} - -// Process remote logging records. - -int -ACE_Thr_Server_Logging_Handler::svc (void) -{ - int result = 0; - - // Loop until the client terminates the connection or an error occurs. - - while ((result = this->handle_input ()) > 0) - continue; - - return result; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Strategy_Acceptor<ACE_Thr_Server_Logging_Handler, LOGGING_PEER_ACCEPTOR>; -template class ACE_Schedule_All_Threaded_Strategy<ACE_Thr_Server_Logging_Handler>; -template class ACE_Strategy_Acceptor<ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH>, LOGGING_PEER_ACCEPTOR>; -template class ACE_Schedule_All_Reactive_Strategy<ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH> >; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ - - diff --git a/netsvcs/lib/Server_Logging_Handler.h b/netsvcs/lib/Server_Logging_Handler.h deleted file mode 100644 index 03730b0d1d5..00000000000 --- a/netsvcs/lib/Server_Logging_Handler.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Server_Logging_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_SERVER_LOGGING_HANDLER_H) -#define ACE_SERVER_LOGGING_HANDLER_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_Server_Logging_Acceptor) -ACE_SVC_FACTORY_DECLARE (ACE_Thr_Server_Logging_Acceptor) - -#endif /* ACE_SERVER_LOGGING_HANDLER_H */ diff --git a/netsvcs/lib/TS_Clerk_Handler.cpp b/netsvcs/lib/TS_Clerk_Handler.cpp deleted file mode 100644 index e0142256ab0..00000000000 --- a/netsvcs/lib/TS_Clerk_Handler.cpp +++ /dev/null @@ -1,805 +0,0 @@ -// TS_Clerk_Handler.cpp -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "ace/Service_Config.h" -#include "ace/Connector.h" - -#include "ace/Get_Opt.h" -#include "ace/SOCK_Connector.h" -#include "ace/SOCK_Stream.h" -#include "ace/Svc_Handler.h" -#include "ace/Time_Value.h" -#include "ace/Time_Request_Reply.h" -#include "ace/OS.h" -#include "ace/Malloc.h" -#include "TS_Clerk_Handler.h" - -// A simple struct containing delta time and a sequence number -struct ACE_Time_Info -{ - long delta_time_; - ACE_UINT32 sequence_num_; -}; - -class ACE_TS_Clerk_Processor; // forward declaration - -class ACE_Svc_Export ACE_TS_Clerk_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // The Clerk Handler provides the interface that is used by the - // Clerk Processor to send time update requests to all the - // servers. It obtains these updates from the servers and passes - // the updates to the Clerk Processor - // - // = DESCRIPTION - // The Clerk Processor uses send_request() to send a request for - // time update to a server. The Clerk Handler internally computes - // the round trip delay for the reply to come back. Once it gets - // the reply back from the server (handle_input), it adjusts the - // system time using the round trip delay estimate and then - // passes the delta time by reference back to the Clerk Processor. -{ -public: - ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor, - ACE_INET_Addr &addr); - // Default constructor. - - // = Set/get the current state - enum State - { - IDLE = 1, // Prior to initialization. - CONNECTING, // During connection establishment. - ESTABLISHED, // Connection is established and active. - DISCONNECTING, // In the process of disconnecting. - FAILED // Connection 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); - - virtual int open (void * = 0); - // Activate this instance of the <ACE_TS_Clerk_Handler> - // (called by the <ACE_TS_Clerk_Processor>). - - virtual ACE_HANDLE get_handle (void) const; - // Return the handle of the message_fifo_; - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK); - // Called when object is removed from the ACE_Reactor - - virtual int handle_input (ACE_HANDLE); - // Receive time update from a server. - - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *arg); - // Restart connection asynchronously when timeout occurs. - - void remote_addr (ACE_INET_Addr &addr); - ACE_INET_Addr &remote_addr (void); - // Get/Set remote addr - - int send_request (ACE_UINT32 sequence_num, ACE_Time_Info &time_info); - // Send request for time update to the server as well as return the - // current time info by reference. - -protected: - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - // Handle SIGPIPE. - - static void stderr_output (int = 0); - - enum - { - MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout. - }; -private: - int recv_reply (ACE_Time_Request &reply); - // Receive a reply from a server containing time update - - int reinitiate_connection (void); - // Reinitiate connection with the server - - State state_; - // The current state of the connection - - int timeout_; - // Amount of time to wait between reconnection attempts - - int max_timeout_; - // Maximum amount of time to wait between reconnection attempts - - ACE_INET_Addr remote_addr_; - // Remote Addr used for connecting to the server - - ACE_TS_Clerk_Processor *processor_; - // Instance of Clerk Processor used for re-establishing connections - - ACE_UINT32 start_time_; - // Time at which request was sent (used to compute round trip delay) - - ACE_UINT32 cur_sequence_num_; - // Next sequence number of time request (waiting for this update from - // the server). - - ACE_Time_Info time_info_; - // Record of current delta time and current sequence number -}; - -class ACE_TS_Clerk_Processor : public ACE_Connector <ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR> - // = TITLE - // This class manages all the connections to the servers along - // with querying them periodically for time updates. - // = DESCRIPTION - // The Clerk Processor creates connections to all the servers and - // creates an ACE_TS_Clerk_Handler for each connection to handle - // the requests and replies. It periodically sends a request for - // time update through each of the handlers and uses the replies for - // computing a synchronized system time. -{ -public: - ACE_TS_Clerk_Processor (void); - // Default constructor - - virtual int handle_timeout (const ACE_Time_Value &tv, - const void *arg); - // Query servers for time periodically (timeout value) - - int initiate_connection (ACE_TS_Clerk_Handler *, ACE_Synch_Options &); - // Set up connections to all servers - -protected: - // = Dynamic linking hooks. - virtual int init (int argc, char *argv[]); - // Called when service is linked. - - virtual int fini (void); - // Called when service is unlinked. - - virtual int info (char **strp, size_t length) const; - // Called to determine info about the service. - - // = Scheduling hooks. - virtual int suspend (void); - virtual int resume (void); - -private: - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - - void alloc (void); - // Allocate entry in shared memory for system time - - int update_time (); - // Update delta_time using times obtained from all servers - - typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> MALLOC; - typedef ACE_Allocator_Adapter<MALLOC> ALLOCATOR; - ALLOCATOR *shmem_; - // Allocator (used for reading/writing system time from/to shared memory) - - typedef ACE_Unbounded_Set <ACE_TS_Clerk_Handler *> HANDLER_SET; - typedef ACE_Unbounded_Set_Iterator <ACE_TS_Clerk_Handler *> HANDLER_SET_ITERATOR; - HANDLER_SET handler_set_; - // Set of TS_Clerk_Handlers and iterator over the set. - - struct System_Time - { - long *delta_time_; // Difference between system time and local time - long *last_local_time_; // Last local time - }; - - System_Time system_time_; - // Clerk system time containing pointers to entries in shared memory - - int timer_id_; - // Timer id returned by Reactor - - int timeout_; - // Time period for updating system time - - LPCTSTR poolname_; - // Pool name for backing store - - int blocking_semantics_; - // Do a blocking/non-blocking connect - - ACE_UINT32 cur_sequence_num_; - // Sequence number of next expected update from servers -}; - - -ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor, - ACE_INET_Addr &addr) -: state_ (ACE_TS_Clerk_Handler::IDLE), - timeout_ (ACE_DEFAULT_TIMEOUT), - max_timeout_ (ACE_TS_Clerk_Handler::MAX_RETRY_TIMEOUT), - remote_addr_ (addr), - processor_ (processor) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler"); - this->time_info_.delta_time_ = 0; - this->time_info_.sequence_num_ = 0; -} - -// Set the connection state -void -ACE_TS_Clerk_Handler::state (ACE_TS_Clerk_Handler::State state) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::state"); - this->state_ = state; -} - -// Get the connection state -ACE_TS_Clerk_Handler::State -ACE_TS_Clerk_Handler::state (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::state"); - return this->state_; -} - -// Sets the timeout delay. -void -ACE_TS_Clerk_Handler::timeout (int to) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::timeout"); - 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 -ACE_TS_Clerk_Handler::timeout (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::timeout"); - int old_timeout = this->timeout_; - this->timeout_ *= 2; - - if (this->timeout_ > this->max_timeout_) - this->timeout_ = this->max_timeout_; - - return old_timeout; -} - -// This is called when a <send> to the logging server fails... - -int -ACE_TS_Clerk_Handler::handle_signal (int, siginfo_t *, ucontext_t *) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::handle_signal"); - return -1; -} - -// Set the max timeout delay. -void -ACE_TS_Clerk_Handler::max_timeout (int mto) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout"); - this->max_timeout_ = mto; -} - -// Gets the max timeout delay. -int -ACE_TS_Clerk_Handler::max_timeout (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout"); - return this->max_timeout_; -} - -int -ACE_TS_Clerk_Handler::open (void *) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::open"); - ACE_INET_Addr server_addr; - - // Set connection state as established - this->state (ACE_TS_Clerk_Handler::ESTABLISHED); - - // Register ourselves to receive SIGPIPE so we can attempt - // reconnections. -#if !defined (ACE_WIN32) - if (ACE_Service_Config::reactor ()->register_handler (SIGPIPE, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n", - "register_handler (SIGPIPE)"), -1); -#endif - - // Register ourselves with the reactor to receive input - if (ACE_Service_Config::reactor ()->register_handler (this->get_handle (), - this, - ACE_Event_Handler::READ_MASK | - ACE_Event_Handler::EXCEPT_MASK) == -1) - ACE_ERROR ((LM_ERROR, "%n: %p\n", "register_handler (this)")); - - // Figure out what remote port we're really bound to. - else if (this->peer ().get_remote_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "TS Clerk Daemon connected to port %d on handle %d\n", - server_addr.get_port_number (), - this->peer ().get_handle ())); - - return 0; -} - -ACE_HANDLE -ACE_TS_Clerk_Handler::get_handle (void) const -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::get_handle"); - return this->peer().get_handle (); -} - -int -ACE_TS_Clerk_Handler::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::handle_close"); - ACE_DEBUG ((LM_DEBUG, "(%t) shutting down on handle %d\n", this->get_handle ())); - return this->reinitiate_connection (); -} - -int -ACE_TS_Clerk_Handler::reinitiate_connection (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::reinitiate_connection"); - // Skip over deactivated descriptors. - - // Set state to connecting so that we don't try to send anything - // using this handler - this->state (ACE_TS_Clerk_Handler::CONNECTING); - if (this->get_handle () != ACE_INVALID_HANDLE) - { - ACE_DEBUG ((LM_DEBUG, "(%t) Scheduling reinitiation of connection\n")); - - // 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; -} - -// Receive a time update from a server -int -ACE_TS_Clerk_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::handle_input"); - // We're getting a time update message from a server - ACE_Time_Request reply; - if (this->recv_reply (reply) != 0) - return -1; - else - { - // Get current local time - ACE_UINT32 local_time = ACE_OS::time (0); - - // Compure delta time (difference between current local time and - // system time obtained from the server) - long t = reply.time () - local_time; - - // Compute round trip delay and adjust time accordingly - ACE_UINT32 one_way_time = (local_time - this->start_time_)/2; - t += one_way_time; - - // Now update time info (to be retrieved by Clerk_Processor) - this->time_info_.delta_time_ = t; - this->time_info_.sequence_num_ = this->cur_sequence_num_; - } - return 0; -} - -// Restart connection asynchronously when timeout occurs. -int -ACE_TS_Clerk_Handler::handle_timeout (const ACE_Time_Value &, - const void *) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::handle_timeout"); - ACE_DEBUG ((LM_DEBUG, - "(%t) attempting to reconnect to server with timeout = %d\n", - this->timeout_)); - - // Close down peer to reclaim descriptor if need be. Note this is - // necessary to reconnect. - this->peer ().close (); - - return this->processor_->initiate_connection (this, ACE_Synch_Options::asynch); -} - -void -ACE_TS_Clerk_Handler::remote_addr (ACE_INET_Addr &addr) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr"); - this->remote_addr_ = addr; -} - -ACE_INET_Addr & -ACE_TS_Clerk_Handler::remote_addr (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr"); - return this->remote_addr_; -} - -int -ACE_TS_Clerk_Handler::recv_reply (ACE_Time_Request &reply) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::recv_reply"); - const int bytes_expected = reply.size (); - - // Since Time_Request messages are fixed size, read the entire - // message in one go. - ssize_t n = this->peer ().recv ((void *) &reply, bytes_expected); - - if (n != bytes_expected) - { - switch (n) - { - case -1: - // FALLTHROUGH - ACE_DEBUG ((LM_DEBUG, "****************** recv_reply returned -1\n")); - default: - ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n", - "recv failed", n, bytes_expected)); - // FALLTHROUGH - case 0: - // We've shutdown unexpectedly - return -1; - // NOTREACHED - } - } - else if (reply.decode () == -1) // Decode the request into host byte order. - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "decode failed"), -1); - return 0; -} - - -int -ACE_TS_Clerk_Handler::send_request (ACE_UINT32 sequence_num, ACE_Time_Info &time_info) -{ - ACE_TRACE ("ACE_TS_Clerk_Handler::send_request"); - void *buffer; - ssize_t length; - - // Update current sequence number - this->cur_sequence_num_ = sequence_num; - - // First update the current time info. - time_info.delta_time_ = this->time_info_.delta_time_; - time_info.sequence_num_ = this->time_info_.sequence_num_; - - // Now prepare a new time update request - ACE_Time_Request request (ACE_Time_Request::TIME_UPDATE, 0, 0); - - if ((length = request.encode (buffer)) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "encode failed"), -1); - - // Compute start time of sending request (needed to compute - // roundtrip delay) - this->start_time_ = ACE_OS::time (0); - - // Send the request - if (this->peer ().send_n (buffer, length) != length) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_n failed"), -1); - - return 0; -} - -ACE_TS_Clerk_Processor::ACE_TS_Clerk_Processor () -: timeout_ (ACE_DEFAULT_TIMEOUT), - poolname_ (ACE_DEFAULT_BACKING_STORE), - blocking_semantics_ (0), - cur_sequence_num_ (0) -{ -} - -void -ACE_TS_Clerk_Processor::alloc (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::alloc"); - ACE_NEW (this->shmem_, ALLOCATOR (this->poolname_)); - - void *temp = 0; - // Only create the state if it doesn't already exist. - if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1) - { - // Allocate the space out of shared memory for the system time entry - temp = this->shmem_->malloc (sizeof (this->system_time_)); - - // Give it a name binding - this->shmem_->bind (ACE_DEFAULT_TIME_SERVER_STR, temp); - - // Set up pointers. Note that we add one to get to the second - // field in the structure - this->system_time_.delta_time_ = (long *) temp; - this->system_time_.last_local_time_ = ((long *) temp) + 1; - - // Initialize - *(this->system_time_.delta_time_) = 0; - *(this->system_time_.last_local_time_) = ACE_OS::time (0); - } -} - -// Query the servers for the latest time -int -ACE_TS_Clerk_Processor::handle_timeout (const ACE_Time_Value &, - const void *) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::handle_timeout"); - return this->update_time (); -} - -int -ACE_TS_Clerk_Processor::update_time () -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::update_time"); - ACE_UINT32 expected_sequence_num = this->cur_sequence_num_; - - // Increment sequence number - this->cur_sequence_num_++; - - int count = 0; - long total_delta = 0; - ACE_Time_Info time_info; - - // Call send_request() on all handlers - ACE_TS_Clerk_Handler **handler = 0; - - for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_); - set_iterator.next (handler) != 0; - set_iterator.advance ()) - { - if ((*handler)->state () == ACE_TS_Clerk_Handler::ESTABLISHED) - { - if ((*handler)->send_request (this->cur_sequence_num_, time_info) == -1) - return -1; - // Check if sequence numbers match; otherwise discard - else if (expected_sequence_num != 0 && - time_info.sequence_num_ == expected_sequence_num) - { - count++; - ACE_DEBUG ((LM_DEBUG, "[%d] Delta time: %d\n", count, time_info.delta_time_)); - - // #### Can check here if delta value falls within a threshold #### - total_delta += time_info.delta_time_; - } - } - } - // Update system_time_ using average of times obtained from all the servers. - // Note that we are keeping two things in shared memory: the delta - // time (difference between our system clock and the local clock), - // and the last local time - if (count > 0) - { - // At least one server is out there - *(this->system_time_.delta_time_) = total_delta/count; - } - else - { - // No servers are out there (or this is the first time around - // computing the time) so set delta time to zero. This - // would mean that clients would use the actual local system time. - *(this->system_time_.delta_time_) = 0; - } - // Update the last local time - *(this->system_time_.last_local_time_) = ACE_OS::time (0); - - ACE_DEBUG ((LM_DEBUG, "Average delta time: %d\n", *(this->system_time_.delta_time_))); - return 0; -} - - -int -ACE_TS_Clerk_Processor::fini (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::fini"); - - // Cancel the timer - if (this->timer_id_ != -1) - ACE_Service_Config::reactor ()->cancel_timer (this->timer_id_); - - // Destroy all the handlers - ACE_TS_Clerk_Handler **handler = 0; - - for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_); - set_iterator.next (handler) != 0; - set_iterator.advance ()) - { - if ((*handler)->state () != ACE_TS_Clerk_Handler::IDLE) - // Mark state as DISCONNECTING so we don't try to reconnect... - (*handler)->state (ACE_TS_Clerk_Handler::DISCONNECTING); - - // Deallocate resources. - (*handler)->destroy (); // Will trigger a delete - } - - // Remove the backing store - this->shmem_->remove (); - return 0; -} - -int -ACE_TS_Clerk_Processor::info (char **, size_t) const -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::info"); - return 0; -} - -int -ACE_TS_Clerk_Processor::init (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::init"); - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - this->alloc (); - -#if !defined (ACE_WIN32) - // Ignore SIPPIPE so each Output_Channel can handle it. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); -#endif /* ACE_WIN32 */ - - ACE_Synch_Options &synch_options = this->blocking_semantics_ == 0 - ? ACE_Synch_Options::asynch : ACE_Synch_Options::synch; - - // Now set up connections to all servers - ACE_TS_Clerk_Handler **handler = 0; - - for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_); - set_iterator.next (handler) != 0; - set_iterator.advance ()) - { - this->initiate_connection (*handler, synch_options); - } - // Now set up timer to receive updates from server - // set the timer to go off after timeout value - this->timer_id_ = ACE_Service_Config::reactor ()->schedule_timer (this, - NULL, - ACE_Time_Value (this->timeout_), - ACE_Time_Value (this->timeout_)); - return 0; -} - -int -ACE_TS_Clerk_Processor::initiate_connection (ACE_TS_Clerk_Handler *handler, - ACE_Synch_Options &synch_options) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::initiate_connection"); - char buf[MAXHOSTNAMELEN + 1]; - - // Mark ourselves as idle so that the various iterators will ignore - // us until we are connected/reconnected. - handler->state (ACE_TS_Clerk_Handler::IDLE); - - if (handler->remote_addr ().addr_to_string (buf, sizeof buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", - "can't obtain peer's address"), -1); - - // Establish connection with the server. - if (this->connect (handler, - handler->remote_addr (), - synch_options) == -1) - { - if (errno != EWOULDBLOCK) - { - handler->state (ACE_TS_Clerk_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 (handler, - 0, - handler->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 - { - handler->state (ACE_TS_Clerk_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 - { - handler->state (ACE_TS_Clerk_Handler::ESTABLISHED); - ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n", - buf, handler->get_handle ())); - } - return 0; -} - -int -ACE_TS_Clerk_Processor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::parse_args"); - ACE_INET_Addr server_addr; - ACE_TS_Clerk_Handler *handler; - char server_host[BUFSIZ]; - - // Create a default entry - ACE_OS::sprintf (server_host, "%s:%d", - ACE_DEFAULT_SERVER_HOST, - ACE_DEFAULT_LOGGING_SERVER_PORT); - - ACE_Get_Opt get_opt (argc, argv, "h:t:p:b", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'h': - // Get the hostname:port and create an ADDR - server_addr.set (get_opt.optarg); - - // Create a new handler - ACE_NEW_RETURN (handler, - ACE_TS_Clerk_Handler (this, server_addr), - -1); - - // Cache the handler - this->handler_set_.insert (handler); - break; - case 't': - // Get the timeout value - this->timeout_ = ACE_OS::atoi (get_opt.optarg); - break; - case 'p': - // Get the poolname - this->poolname_ = ACE_WIDE_STRING (get_opt.optarg); - break; - case 'b': - // Blocking semantics - this->blocking_semantics_ = 1; - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p hostname:port] [-t timeout] [-p poolname]\n%a", 1), - -1); - break; - } - } - return 0; -} - -int -ACE_TS_Clerk_Processor::suspend (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::suspend"); - return 0; -} - -int -ACE_TS_Clerk_Processor::resume (void) -{ - ACE_TRACE ("ACE_TS_Clerk_Processor::resume"); - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the TS_Clerk. - -ACE_SVC_FACTORY_DEFINE (ACE_TS_Clerk_Processor) - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Connector<ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/netsvcs/lib/TS_Clerk_Handler.h b/netsvcs/lib/TS_Clerk_Handler.h deleted file mode 100644 index a1dcccdd4d9..00000000000 --- a/netsvcs/lib/TS_Clerk_Handler.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// TS_Clerk_Handler.h -// -// = AUTHOR -// Prashant Jain -// -// ============================================================================ - -#if !defined (ACE_TS_CLERK_HANDLER_H) -#define ACE_TS_CLERK_HANDLER_H - -ACE_SVC_FACTORY_DECLARE (ACE_TS_Clerk_Processor) - -#endif /* ACE_TS_CLERK_HANDLER_H */ diff --git a/netsvcs/lib/TS_Server_Handler.cpp b/netsvcs/lib/TS_Server_Handler.cpp deleted file mode 100644 index 06ea4e9da5c..00000000000 --- a/netsvcs/lib/TS_Server_Handler.cpp +++ /dev/null @@ -1,324 +0,0 @@ -// TS_Server_Handler.cpp -// $Id$ - -#define ACE_BUILD_SVC_DLL -#include "ace/SString.h" -#include "ace/Set.h" -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Stream.h" -#include "ace/Time_Request_Reply.h" -#include "TS_Server_Handler.h" - -class ACE_Svc_Export ACE_TS_Server_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // Product object created by <ACE_TS_Server_Acceptor>. - // - // = DESCRIPTION -{ - friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning -public: - // = Initialization and termination. - - ACE_TS_Server_Handler (ACE_Thread_Manager * = 0); - // Default constructor. - - virtual int open (void * = 0); - // Activate this instance of the <ACE_TS_Server_Handler> (called by the - // <ACE_Strategy_Acceptor>). - - ~ACE_TS_Server_Handler (void); - // Must be allocated dynamically. - -protected: - // = Helper routines for the operations exported to clients. - - virtual int abandon (void); - // Give up waiting (e.g., when a timeout occurs or a client shuts - // down unexpectedly). - - // = Low level routines for framing requests, dispatching - // operations, and returning replies. - - virtual int recv_request (void); - // Receive, frame, and decode the client's request. - - virtual int dispatch (void); - // Dispatch the appropriate operation to handle the client's - // request. - - virtual int send_request (ACE_Time_Request &); - // Special kind of reply - - // = Demultiplexing hooks. - virtual ACE_HANDLE get_handle (void) const; - // Return the underlying <ACE_HANDLE>. - - virtual int handle_input (ACE_HANDLE); - // Callback method invoked by the <ACE_Reactor> when client events - // arrive. - - // = Timer hook. - virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg); - // Enable clients to limit the amount of time they wait. - -private: - ACE_Time_Request time_request_; - // Cache request from the client. - - ACE_INET_Addr addr_; - // Address of client we are connected with. -}; - -class ACE_TS_Server_Acceptor : public ACE_Strategy_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR> - // = TITLE - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - -private: - ACE_Schedule_All_Reactive_Strategy<ACE_TS_Server_Handler> scheduling_strategy_; - // The scheduling strategy is designed for Reactive services. -}; - -int -ACE_TS_Server_Acceptor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_TS_Server_Acceptor::parse_args"); - - this->service_port_ = ACE_DEFAULT_SERVER_PORT; - - ACE_LOG_MSG->open ("Time Service"); - - ACE_Get_Opt get_opt (argc, argv, "p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'p': - this->service_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - this->service_addr_.set (this->service_port_); - return 0; -} - -int -ACE_TS_Server_Acceptor::init (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_TS_Server_Acceptor::init"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - // Set the acceptor endpoint into listen mode (use the Singleton - // global Reactor...). - if (this->open (this->service_addr_, ACE_Service_Config::reactor (), - 0, 0, 0, - &this->scheduling_strategy_, - "Time Server", "ACE time service") == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n", - "acceptor::open failed", - this->service_addr_.get_port_number ()), -1); - - // Register ourselves to receive SIGINT so we can shutdown - // gracefully. - if (this->reactor ()->register_handler (SIGINT, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n", - "register_handler (SIGINT)"), -1); - - // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its - // own. - ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE); - - ACE_INET_Addr server_addr; - - // Figure out what port we're really bound to. - if (this->acceptor ().get_local_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_local_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Time Server at port %d on handle %d\n", - server_addr.get_port_number (), - this->acceptor ().get_handle ())); - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the Time Server - -ACE_SVC_FACTORY_DEFINE (ACE_TS_Server_Acceptor) - -// Default constructor. -ACE_TS_Server_Handler::ACE_TS_Server_Handler (ACE_Thread_Manager *tm) - : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm) -{ - ACE_TRACE ("ACE_TS_Server_Handler::ACE_TS_Server_Handler"); -} - -// Activate this instance of the ACE_TS_Server_Handler (called by the -// ACE_TS_Server_Acceptor). - -/* VIRTUAL */ int -ACE_TS_Server_Handler::open (void *) -{ - ACE_TRACE ("ACE_TS_Server_Handler::open"); - - ACE_INET_Addr client_addr; - - // Determine the address of the client and display it. - if (this->peer ().get_remote_addr (client_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, "(%t) accepted connection from host %s on fd %d\n", - client_addr.get_host_name (), this->peer ().get_handle ())); - - // Call down to our parent to register ourselves with the Reactor. - if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (0) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1); - return 0; -} - -/* VIRTUAL */ int -ACE_TS_Server_Handler::send_request (ACE_Time_Request &request) -{ - ACE_TRACE ("ACE_TS_Server_Handler::send_request"); - void *buffer; - ssize_t length = request.encode (buffer); - - if (length == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "encode failed"), -1); - - // Transmit request via a blocking send. - - if (this->peer ().send_n (buffer, length) != length) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_n failed"), -1); - - return 0; -} - -// Give up waiting (e.g., when a timeout occurs or a client shuts down -// unexpectedly). - -/* VIRTUAL */ int -ACE_TS_Server_Handler::abandon (void) -{ - ACE_TRACE ("ACE_TS_Server_Handler::abandon"); - - // Note we are using the time field to report the errno in case of - // failure. - ACE_Time_Request rq (ACE_Time_Request::FAILURE, errno); - return this->send_request (rq); -} - -// Enable clients to limit the amount of time they'll wait -/* VIRTUAL */ int -ACE_TS_Server_Handler::handle_timeout (const ACE_Time_Value &, const void *) -{ - ACE_TRACE ("ACE_TS_Server_Handler::handle_timeout"); - return this->abandon (); -} - -// Return the underlying ACE_HANDLE. - -/* VIRTUAL */ ACE_HANDLE -ACE_TS_Server_Handler::get_handle (void) const -{ - ACE_TRACE ("ACE_TS_Server_Handler::get_handle"); - return this->peer ().get_handle (); -} - -// Dispatch the appropriate operation to handle the client request. - -/* VIRTUAL */ int -ACE_TS_Server_Handler::dispatch (void) -{ - ACE_TRACE ("ACE_TS_Server_Handler::dispatch"); - // Get the system time and then create an ACE_Time_Request - time_t t = ACE_OS::time (0); - ACE_Time_Request rq (ACE_Time_Request::TIME_UPDATE, t); - return this->send_request (rq); -} - -// Receive, frame, and decode the client's request. Note, this method -// should use non-blocking I/O. - -/* VIRTUAL */ int -ACE_TS_Server_Handler::recv_request (void) -{ - ACE_TRACE ("ACE_TS_Server_Handler::recv_request"); - ssize_t bytes_expected = this->time_request_.size (); - - // Since Time_Request messages are fixed size, read the entire - // message in one go. - ssize_t n = this->peer ().recv ((void *) &this->time_request_, bytes_expected); - if (n != bytes_expected) - { - switch (n) - { - case -1: - /* FALLTHROUGH */ - ACE_DEBUG ((LM_DEBUG, "****************** recv_request returned -1\n")); - default: - ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n", - "recv failed", n, bytes_expected)); - /* FALLTHROUGH */ - case 0: - // We've shutdown unexpectedly, let's abandon the connection. - this->abandon (); - return -1; - /* NOTREACHED */ - } - } - else - { - // Decode the request into host byte order. - if (this->time_request_.decode () == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "decode failed")); - return this->abandon (); - } - } - return 0; -} - -// Callback method invoked by the ACE_Reactor when events arrive from -// the client. - -/* VIRTUAL */ int -ACE_TS_Server_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_TS_Server_Handler::handle_input"); - - if (this->recv_request () == -1) - return -1; - else - return this->dispatch (); -} - -ACE_TS_Server_Handler::~ACE_TS_Server_Handler (void) -{ - ACE_TRACE ("ACE_TS_Server_Handler::~ACE_TS_Server_Handler"); - ACE_DEBUG ((LM_DEBUG, "closing down Handle %d\n", - this->get_handle ())); -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Strategy_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>; -template class ACE_Schedule_All_Reactive_Strategy<ACE_TS_Server_Handler>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/netsvcs/lib/TS_Server_Handler.h b/netsvcs/lib/TS_Server_Handler.h deleted file mode 100644 index 6fff595c215..00000000000 --- a/netsvcs/lib/TS_Server_Handler.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// TS_Server_Handler.h -// -// = AUTHOR -// Prashant Jain -// -// ============================================================================ - -#if !defined (ACE_TS_SERVER_HANDLER_H) -#define ACE_TS_SERVER_HANDLER_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_TS_Server_Acceptor) - -#endif /* ACE_TS_SERVER_HANDLER_H */ diff --git a/netsvcs/lib/Token_Handler.cpp b/netsvcs/lib/Token_Handler.cpp deleted file mode 100644 index 9fedf86b066..00000000000 --- a/netsvcs/lib/Token_Handler.cpp +++ /dev/null @@ -1,880 +0,0 @@ -// Token_Handler.cpp -// $Id$ - -#define ACE_BUILD_SVC_DLL - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/Token_Request_Reply.h" -#include "ace/Token_Collection.h" -#include "ace/Local_Tokens.h" -#include "Token_Handler.h" - -class ACE_Svc_Export ACE_Token_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // Product object created by an <ACE_Token_Acceptor>. A - // <Token_Handler> exchanges messages with a <Token_Proxy> object - // on the client-side. - // - // = DESCRIPTION - // This class is the main workhorse of the ACE Token service. It - // receives token operation requests from remote clients and turns - // them into calls on local tokens (acquire, release, renew, and - // remove). In OMG CORBA terms, it is an object adapter. It also - // schedules and handles timeouts that are used to support "timed - // waits." Clients used timed waits to bound the amount of time - // they block trying to get a token. - -{ -public: - // = Initialization and termination. - - ACE_Token_Handler (ACE_Thread_Manager * = 0); - // Default constructor. - - // = Accessor and mutator methods. - - // = Remote operations "exported" to a client. - virtual int acquire (ACE_Token_Proxy *proxy); - // Try to acquire the token. - // Precondition: client *may* hold the token already (i.e., - // supports recursive acquisitions). - - virtual int try_acquire (ACE_Token_Proxy *proxy); - // Try to acquire the token. - - virtual int release (ACE_Token_Proxy *proxy); - // Release the token and allow the next client that is waiting to - // proceed. Preconditions: client must hold the token. - - virtual int renew (ACE_Token_Proxy *proxy); - // Yield the token if any clients are waiting, otherwise keep the - // token. Preconditions: client must hold the token. - - virtual int remove (ACE_Token_Proxy *proxy); - // Remove the specified token from the Token_Map. Preconditions: - // ACE_Token must exist. @@ Any other preconditions, e.g., must - // client hold token, must there be no waiters, etc.? - - void sleep_hook (void); - // Called by TS_[Mutex,RLock,WLock] when we hold the mutex and - // someone wants it. - - void token_acquired (ACE_TPQ_Entry *); - // Called by TS_[Mutex,RLock,WLock] when we are waiting and acquire - // the mutex. - -protected: - // = Low level routines for framing requests, dispatching - // operations, and returning replies. - - virtual int abandon (int send_error); - // Our connection has been closed. - - virtual int recv_request (void); - // Receive, frame, and decode the client's request. - - virtual int dispatch (void); - // Dispatch the appropriate operation to handle the client's - // request. - - virtual int send_reply (ACE_UINT32 errnum); - // Create and send a reply to the client. - - // = Demultiplexing hooks. - virtual int handle_input (ACE_HANDLE); - // Callback method invoked by the <ACE_Reactor> when client events - // arrive. - - // = Timer hook. - virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg); - // Enable clients to limit the amount of time they wait for a token. - - ACE_Token_Proxy *get_proxy (void); - // return a proxy for the calling client_id and token name. - -private: - - virtual ACE_Token_Proxy *create_proxy (void); - // Switches on the type of token_request_ and creates a new - // Token_Proxy. - - ACE_Synch_Options request_options_; - // Keeps track of the synchronization options (i.e., the timeout - // interval). - - ACE_Token_Collection collection_; - // collection of the client's token proxies. - - int timeout_id_; - // ID returned by the Reactor that is used to kill registered timers - // when a token operation times out. - - ACE_Token_Request token_request_; - // Cache request from the client. - - ACE_Token_Reply token_reply_; - // Cache reply to the client. -}; - -// = DESCRIPTION of ACE_TS_* classes: -// When Tokens are released, waiting token proxies are notified -// when the releasing thread calls token_acquired on the waiting -// proxy. The Token Server specializes ACE_Token_Proxy to -// redefine the implementation of token_acquired. When -// token_acquired is called, the Token_Handler can then send the -// response back over the socket connection to unblock the -// client side. -// Since only the Token_Handler uses ACE_TS_Mutex, we've moved -// the definition to the .cpp file. - -class ACE_TS_Mutex : public ACE_Local_Mutex - // = TITLE - // ACE_TS_Mutex -- ACE_*T*oken_*S*erver_Mutex -{ -public: - ACE_TS_Mutex (const char *name, - ACE_Token_Handler *th); - // Creation. - -protected: - virtual void sleep_hook (void); - // Somebody wants our token! - - virtual void token_acquired (ACE_TPQ_Entry *); - // We've been taken off the waiters list and given the token! Call - // the Token_Handler associated at construction, so it can tell the - // remote client. - - ACE_TS_Mutex (const ACE_TS_Mutex &); - // Duplication. - - virtual ACE_Token_Proxy *clone (void) const; - // Return a deep copy. - -private: - ACE_Token_Handler* th_; - // The Token Handler associated with this proxy. Set at - // construction and notified when blocking acquires succeed. -}; - -class ACE_TS_RLock : public ACE_Local_RLock - // = TITLE - // ACE_TS_RLock -- ACE_*T*oken_*S*erver_RLock -{ -public: - ACE_TS_RLock (const char *name, - ACE_Token_Handler *th); - // Creation. - -protected: - virtual void sleep_hook (void); - // Somebody wants our token! - - virtual void token_acquired (ACE_TPQ_Entry *); - // We've been taken off the waiters list and given the token! Call - // the Token_Handler associated at construction, so it can tell the - // remote client. - - ACE_TS_RLock (const ACE_TS_RLock&); - // Duplication. - - virtual ACE_Token_Proxy *clone (void) const; - // Return a deep copy. - -private: - ACE_Token_Handler* th_; - // the Token Handler associated with this proxy. Set at - // construction and notified when blocking acquires succeed. -}; - -class ACE_TS_WLock : public ACE_Local_WLock - // = TITLE - // ACE_TS_WLock -- ACE_*T*oken_*S*erver_WLock -{ -public: - ACE_TS_WLock (const char *name, - ACE_Token_Handler *th); - // Creation. - -protected: - virtual void sleep_hook (void); - // Somebody wants our token! - - virtual void token_acquired (ACE_TPQ_Entry *); - // We've been taken off the waiters list and given the token! Call - // the Token_Handler associated at construction, so it can tell the - // remote client. - - ACE_TS_WLock (const ACE_TS_WLock&); - // Duplication. - - virtual ACE_Token_Proxy *clone (void) const; - // Return a deep copy. - -private: - ACE_Token_Handler* th_; - // the Token Handler associated with this proxy. Set at - // construction and notified when blocking acquires succeed. -}; - -// ************************************************************ - -class ACE_Token_Acceptor : public ACE_Strategy_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR> - // = TITLE - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. - - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. - -private: - ACE_Schedule_All_Reactive_Strategy<ACE_Token_Handler> scheduling_strategy_; - // The scheduling strategy is designed for Reactive services. -}; - -int -ACE_Token_Acceptor::parse_args (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Token_Acceptor::parse_args"); - - this->service_port_ = ACE_DEFAULT_SERVER_PORT; - - ACE_LOG_MSG->open ("Token Service"); - - ACE_Get_Opt get_opt (argc, argv, "p:", 0); - - for (int c; (c = get_opt ()) != -1; ) - { - switch (c) - { - case 'p': - this->service_port_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%n:\n[-p server-port]\n%a", 1), - -1); - break; - } - } - - this->service_addr_.set (this->service_port_); - return 0; -} - -int -ACE_Token_Acceptor::init (int argc, char *argv[]) -{ - ACE_TRACE ("ACE_Token_Acceptor::init"); - - // Use the options hook to parse the command line arguments and set - // options. - this->parse_args (argc, argv); - - // Set the acceptor endpoint into listen mode (use the Singleton - // global Reactor...). - if (this->open (this->service_addr_, ACE_Service_Config::reactor (), - 0, 0, 0, - &this->scheduling_strategy_, - "Token Server", "ACE token service") == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n", - "acceptor::open failed", - this->service_addr_.get_port_number ()), -1); - - // Register ourselves to receive SIGINT so we can shutdown - // gracefully. - if (this->reactor ()->register_handler (SIGINT, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n", - "register_handler (SIGINT)"), -1); - - // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its - // own. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - - ACE_INET_Addr server_addr; - - if (this->acceptor ().get_local_addr (server_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1); - - ACE_DEBUG ((LM_DEBUG, - "starting up Token Server at port %d on handle %d\n", - server_addr.get_port_number (), - this->acceptor ().get_handle ())); - return 0; -} - -// The following is a "Factory" used by the ACE_Service_Config and -// svc.conf file to dynamically initialize the state of the Naming -// Server. - -ACE_SVC_FACTORY_DEFINE (ACE_Token_Acceptor) - -// Default constructor. - -ACE_Token_Handler::ACE_Token_Handler (ACE_Thread_Manager *tm) - : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm), - collection_ (1), - timeout_id_ (0) -{ - ACE_TRACE ("ACE_Token_Handler::ACE_Token_Handler"); -} - -// Create and send a reply to the client. - -/* VIRTUAL */ int -ACE_Token_Handler::send_reply (ACE_UINT32 err) -{ - ACE_TRACE ("ACE_Token_Handler::send_reply"); - void *buf; - size_t len; - ssize_t n; - - this->token_reply_.errnum (err); - - len = this->token_reply_.encode (buf); - - n = this->peer ().send (buf, len); - - if (n != (ssize_t) len) - ACE_ERROR_RETURN ((LM_ERROR, - "%p, expected len = %d, actual len = %d\n", - "send failed", len, n), -1); - else - return 0; -} - -// Acquire the token. - -/* VIRTUAL */ int -ACE_Token_Handler::acquire (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_Token_Handler::acquire"); - ACE_DEBUG ((LM_DEBUG, "in acquire for client id = %s\n", - proxy->client_id ())); - - // @@ add notify in token request reply - if (proxy->acquire (0, 0, ACE_Synch_Options::asynch) == -1) - { - if (errno != EWOULDBLOCK) - // bad bad bad - return this->send_reply (errno); - - // acquire would block - if (request_options_[ACE_Synch_Options::USE_TIMEOUT] == 1) - { - // check for polling - if ((request_options_.timeout ().sec () == 0) && - (request_options_.timeout ().usec () == 0)) - return this->send_reply (EWOULDBLOCK); - - // schedule a timer - this->timeout_id_ = this->reactor ()->schedule_timer - (this, (void *) proxy, request_options_.timeout ()); - if (timeout_id_ == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer")); - return this->send_reply (errno); - } - } - // send no reply. wait until we acquire it or until the timer - // goes off. - return 0; - } - else // success - return this->send_reply (ACE_Token_Reply::SUCCESS); -} - -// Try to acquire the token. Never block. - -/* VIRTUAL */ int -ACE_Token_Handler::try_acquire (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_Token_Handler::try_acquire"); - - ACE_DEBUG ((LM_DEBUG, "in try_acquire for client id = %s\n", - proxy->client_id ())); - - // @@ add notify in token request reply - if (proxy->tryacquire () == -1) - return this->send_reply (errno); - else - return this->send_reply (ACE_Token_Reply::SUCCESS); -} - -// Release the token and allow the next client that is waiting to -// proceed. - -/* VIRTUAL */ int -ACE_Token_Handler::release (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_Token_Handler::release"); - ACE_DEBUG ((LM_DEBUG, - "in release for client id = %s\n", - proxy->client_id ())); - - if (proxy->release (ACE_Synch_Options::asynch) == -1) - // oops, it failed - return this->send_reply (ACE_LOG_MSG->errnum ()); - - // success - if (this->timeout_id_ != 0) - { - this->reactor ()->cancel_timer (timeout_id_); - this->timeout_id_ = 0; - } - - return this->send_reply (ACE_Token_Reply::SUCCESS); -} - -// Yield the token if any clients are waiting, otherwise keep the -// token. - -/* VIRTUAL */ int -ACE_Token_Handler::renew (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_Token_Handler::renew"); - - ACE_DEBUG ((LM_DEBUG, "in renew for client id = %s\n", - proxy->client_id ())); - - if (proxy->renew (token_request_.requeue_position (), - ACE_Synch_Options::asynch) == -1) - { - int result = ACE_LOG_MSG->errnum (); - if (result != EWOULDBLOCK) - // bad bad bad - return this->send_reply (result); - - // acquire would block - if (request_options_[ACE_Synch_Options::USE_TIMEOUT] == 1) - { - this->timeout_id_ = this->reactor ()->schedule_timer - (this, 0, request_options_.timeout ()); - if (timeout_id_ == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer")); - return this->send_reply (ACE_LOG_MSG->errnum ()); - } - } - // Send no reply. wait until we acquire it or until the timer - // goes off. - return 0; - } - else - // Success, we still hold the token. - return this->send_reply (ACE_Token_Reply::SUCCESS); -} - -/* VIRTUAL */ int -ACE_Token_Handler::remove (ACE_Token_Proxy *proxy) -{ - ACE_TRACE ("ACE_Token_Handler::remove"); - ACE_DEBUG ((LM_DEBUG, "in remove for client id = %s\n", - proxy->client_id ())); - ACE_ERROR ((LM_ERROR, "sorry: ACE_Token_Handler::remove() is not implemented")); - - return this->send_reply (ENOTSUP); -} - -// Enable clients to limit the amount of time they'll wait for a -// token. - -/* VIRTUAL */ int -ACE_Token_Handler::handle_timeout (const ACE_Time_Value &, - const void *tp) -{ - ACE_TRACE ("ACE_Token_Handler::handle_timeout"); - - this->timeout_id_ = 0; - - // @@ add a try acquire here! - // Try to acquire the token, but if we can't get it immediately - // then abandon the wait. - // if (this->try_acquire (&token_entry) == -1) - // return this->abandon (token_entry); - - ACE_Token_Proxy *proxy = (ACE_Token_Proxy *) tp; - - ACE_DEBUG ((LM_DEBUG, "in handle_timeout for client id = %s\n", - proxy->client_id ())); - - // Remove ourselves from the waiter list. - proxy->release (); - - this->send_reply (ETIME); - return 0; -} - -// Dispatch the appropriate operation to handle the client request. - -ACE_Token_Proxy * -ACE_Token_Handler::get_proxy (void) -{ - ACE_TRACE ("ACE_Token_Handler::get_proxy"); - - // See if the proxy already exists in the collection. - ACE_Token_Proxy *proxy = collection_.is_member (token_request_.token_name ()); - - // If not, create one. - if (proxy == 0) - { - proxy = this->create_proxy (); - - // Put the new_proxy in this client_id's collection. - if (collection_.insert (*proxy) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "insert failed\n"), 0); - - // Delete our copy (one was created in the collection). - delete proxy; - proxy = collection_.is_member (token_request_.token_name ()); - - if (proxy == 0) - ACE_ERROR_RETURN ((LM_ERROR, "is_member failed\n"), 0); - - // Set the client_id (it was set to 1 since we're - // single-threaded. - proxy->client_id (token_request_.client_id ()); - } - - return proxy; -} - -ACE_Token_Proxy * -ACE_Token_Handler::create_proxy (void) -{ - ACE_TRACE ("ACE_Token_Handler::new_proxy"); - - ACE_Token_Proxy *proxy; - - switch (token_request_.token_type ()) - { - case ACE_Tokens::RWLOCK: - if (token_request_.proxy_type () == ACE_RW_Token::READER) - ACE_NEW_RETURN (proxy, - ACE_TS_RLock (token_request_.token_name (), this), - 0); - else - ACE_NEW_RETURN (proxy, - ACE_TS_WLock (token_request_.token_name (), this), - 0); - break; - case ACE_Tokens::MUTEX: - ACE_NEW_RETURN (proxy, - ACE_TS_Mutex (token_request_.token_name (), this), - 0); - break; - default: - // Nonexistent token type. - errno = EINVAL; - return 0; - } - - // Check for failed new. - if (proxy == 0) - errno = ENOMEM; - - return proxy; -} - -int -ACE_Token_Handler::dispatch (void) -{ - ACE_TRACE ("ACE_Token_Handler::dispatch"); - ACE_Token_Proxy *proxy = this->get_proxy (); - - if (proxy == 0) - return -1; - - // Dispatch the appropriate request. - switch (this->token_request_.operation_type ()) - { - case ACE_Token_Request::ACQUIRE: - return this->acquire (proxy); - case ACE_Token_Request::TRY_ACQUIRE: - return this->try_acquire (proxy); - case ACE_Token_Request::RELEASE: - return this->release (proxy); - case ACE_Token_Request::RENEW: - return this->renew (proxy); - case ACE_Token_Request::REMOVE: - return this->remove (proxy); - default: - ACE_ERROR_RETURN ((LM_ERROR, "invalid type = %d\n", - this->token_request_.operation_type ()), -1); - /* NOTREACHED */ - } -} - -// Receive, frame, and decode the client's request. -// Note, this method should use non-blocking I/O. - -/* VIRTUAL */ int -ACE_Token_Handler::recv_request (void) -{ - ACE_TRACE ("ACE_Token_Handler::recv_request"); - ssize_t n; - - // Read the first 4 bytes to get the length of the message - // This implementation assumes that the first 4 bytes are - // the length of the message. - n = this->peer ().recv ((void *) &this->token_request_, - sizeof (ACE_UINT32)); - - switch (n) - { - case -1: - /* FALLTHROUGH */ - default: - ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n", - "recv failed", n, sizeof (ACE_UINT32))); - /* FALLTHROUGH */ - case 0: - // We've shutdown unexpectedly, let's abandon the connection. - this->abandon (0); - return -1; - /* NOTREACHED */ - case sizeof (ACE_UINT32): - { - // Transform the length into host byte order. - ssize_t length = this->token_request_.length (); - - // Do a sanity check on the length of the message. - if (length > (ssize_t) sizeof this->token_request_) - { - ACE_ERROR ((LM_ERROR, "length %d too long\n", length)); - return this->abandon (1); - } - - // Receive the rest of the request message. - // @@ beware of blocking read!!!. - n = this->peer ().recv ((void *) (((char *) &this->token_request_) - + sizeof (ACE_UINT32)), - length - sizeof (ACE_UINT32)); - - // Subtract off the size of the part we skipped over... - if (n != (length - (ssize_t) sizeof (ACE_UINT32))) - { - ACE_ERROR ((LM_ERROR, "%p expected %d, got %d\n", - "invalid length", length, n)); - return this->abandon (1); - } - - // Decode the request into host byte order. - if (this->token_request_.decode () == -1) - { - ACE_ERROR ((LM_ERROR, "%p\n", "decode failed")); - return this->abandon (1); - } - - // if (OS::debug) - this->token_request_.dump (); - } - } - return 0; -} - -// Callback method invoked by the ACE_Reactor when -// events arrive from the client. - -/* VIRTUAL */ int -ACE_Token_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Token_Handler::handle_input"); - - ACE_DEBUG ((LM_DEBUG, "****************** in handle_input\n")); - - if (this->recv_request () == -1) - return -1; - else - return this->dispatch (); -} - -void -ACE_Token_Handler::sleep_hook (void) -{ - ACE_TRACE ("ACE_Token_Handler::sleep_hook"); - // @@ what should we do? - return; -} - -void -ACE_Token_Handler::token_acquired (ACE_TPQ_Entry *) -{ - ACE_TRACE ("ACE_Token_Handler::token_acquired"); - - if (this->timeout_id_ != 0) - { - this->reactor ()->cancel_timer (this->timeout_id_); - this->timeout_id_ = 0; - } - - this->send_reply (ACE_Token_Reply::SUCCESS); -} - -int -ACE_Token_Handler::abandon (int send_error) -{ - ACE_TRACE ("ACE_Token_Handler::abandon"); - - // Release ownership or remove us from the waiter list. - if (this->timeout_id_ != 0) - { - this->reactor ()->cancel_timer (timeout_id_); - this->timeout_id_ = 0; - } - - // @@ release all tokens - collection_.release (); - - if (send_error) - return this->send_reply (EIO); - else - return -1; -} - -// ************************************************************ -// ************************************************************ -// ************************************************************ - -ACE_TS_Mutex::ACE_TS_Mutex (const char *name, - ACE_Token_Handler *th) -: th_ (th), - ACE_Local_Mutex (name, 0, 1) // The 1 is debug. -{ - ACE_TRACE ("ACE_TS_Mutex::ACE_TS_Mutex"); -} - -ACE_TS_Mutex::ACE_TS_Mutex (const ACE_TS_Mutex &m) -: th_ (m.th_), - ACE_Local_Mutex (m) -{ - ACE_TRACE ("ACE_TS_Mutex::ACE_TS_Mutex"); - this->open (m.name (), m.ignore_deadlock_, m.debug_); -} - -void -ACE_TS_Mutex::sleep_hook (void) -{ - ACE_TRACE ("ACE_TS_Mutex::sleep_hook"); - th_->sleep_hook (); - return; -} - -void -ACE_TS_Mutex::token_acquired (ACE_TPQ_Entry *e) -{ - ACE_TRACE ("ACE_TS_Mutex::token_acquired"); - // Notify the token handler. - th_->token_acquired (e); - return; -} - -ACE_Token_Proxy * -ACE_TS_Mutex::clone (void) const -{ - ACE_TRACE ("ACE_TS_Mutex::clone"); - ACE_Token_Proxy *temp; - ACE_NEW_RETURN (temp, ACE_TS_Mutex (*this), 0); - return temp; -} - -// ************************************************************ - -ACE_TS_RLock::ACE_TS_RLock (const char *name, - ACE_Token_Handler *th) -: th_ (th), - ACE_Local_RLock (name, 0, 1) // The 1 is debug. -{ - ACE_TRACE ("ACE_TS_RLock::ACE_TS_RLock"); -} - -ACE_TS_RLock::ACE_TS_RLock (const ACE_TS_RLock &r) -: th_ (r.th_), - ACE_Local_RLock (r) -{ - ACE_TRACE ("ACE_TS_RLock::ACE_TS_RLock"); - this->open (r.name (), r.ignore_deadlock_, r.debug_); -} - -void -ACE_TS_RLock::sleep_hook (void) -{ - ACE_TRACE ("ACE_TS_RLock::sleep_hook"); - th_->sleep_hook (); - return; -} - -void -ACE_TS_RLock::token_acquired (ACE_TPQ_Entry *e) -{ - ACE_TRACE ("ACE_TS_RLock::token_acquired"); - // Notify the token handler. - th_->token_acquired (e); - return; -} - -ACE_Token_Proxy * -ACE_TS_RLock::clone (void) const -{ - ACE_TRACE ("ACE_TS_RLock::clone"); - ACE_Token_Proxy *temp; - - ACE_NEW_RETURN (temp, ACE_TS_RLock (*this), 0); - return temp; -} - -// ************************************************************ - -ACE_TS_WLock::ACE_TS_WLock (const char *name, - ACE_Token_Handler *th) -: th_ (th), - ACE_Local_WLock (name, 0, 1) // The 1 is debug. -{ - ACE_TRACE ("ACE_TS_WLock::ACE_TS_WLock"); -} - -ACE_TS_WLock::ACE_TS_WLock (const ACE_TS_WLock &w) -: th_ (w.th_), - ACE_Local_WLock (w) -{ - ACE_TRACE ("ACE_TS_WLock::ACE_TS_WLock"); - this->open (w.name (), w.ignore_deadlock_, w.debug_); -} - -void -ACE_TS_WLock::sleep_hook (void) -{ - ACE_TRACE ("ACE_TS_WLock::sleep_hook"); - th_->sleep_hook (); - return; -} - -void -ACE_TS_WLock::token_acquired (ACE_TPQ_Entry *e) -{ - ACE_TRACE ("ACE_TS_WLock::token_acquired"); - // Notify the token handler. - th_->token_acquired (e); - return; -} - -ACE_Token_Proxy * -ACE_TS_WLock::clone (void) const -{ - ACE_TRACE ("ACE_TS_WLock::clone"); - ACE_Token_Proxy *temp; - - ACE_NEW_RETURN (temp, ACE_TS_WLock (*this), 0); - return temp; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template class ACE_Strategy_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>; -template class ACE_Schedule_All_Reactive_Strategy<ACE_Token_Handler>; -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/netsvcs/lib/Token_Handler.h b/netsvcs/lib/Token_Handler.h deleted file mode 100644 index 75d51c7f2b2..00000000000 --- a/netsvcs/lib/Token_Handler.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ACE -// -// = FILENAME -// Token_Handler.h -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// Tim Harrison (harrison@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (ACE_TOKEN_HANDLER_H) -#define ACE_TOKEN_HANDLER_H - -#include "ace/OS.h" - -ACE_SVC_FACTORY_DECLARE (ACE_Token_Acceptor) - -#endif /* ACE_TOKEN_HANDLER_H */ diff --git a/netsvcs/lib/netsvcs.mak b/netsvcs/lib/netsvcs.mak deleted file mode 100644 index 7a9e6d53649..00000000000 --- a/netsvcs/lib/netsvcs.mak +++ /dev/null @@ -1,1055 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=netsvcs - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to netsvcs - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "netsvcs - Win32 Release" && "$(CFG)" !=\
- "netsvcs - 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 "netsvcs.mak" CFG="netsvcs - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "netsvcs - Win32 Release" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "netsvcs - 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 "netsvcs - Win32 Debug"
-MTL=mktyplib.exe
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "netsvcs - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "netsvcs\Release"
-# PROP BASE Intermediate_Dir "netsvcs\Release"
-# PROP BASE Target_Dir "netsvcs"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "netsvcs\Release"
-# PROP Intermediate_Dir "netsvcs\Release"
-# PROP Target_Dir "netsvcs"
-OUTDIR=.\netsvcs\Release
-INTDIR=.\netsvcs\Release
-
-ALL : "$(OUTDIR)\netsvcs.dll"
-
-CLEAN :
- -@erase ".\netsvcs\Release\netsvcs.dll"
- -@erase ".\netsvcs\Release\Logging_Strategy.obj"
- -@erase ".\netsvcs\Release\Server_Logging_Handler.obj"
- -@erase ".\netsvcs\Release\Name_Handler.obj"
- -@erase ".\netsvcs\Release\Client_Logging_Handler.obj"
- -@erase ".\netsvcs\Release\Token_Handler.obj"
- -@erase ".\netsvcs\Release\TS_Clerk_Handler.obj"
- -@erase ".\netsvcs\Release\TS_Server_Handler.obj"
- -@erase ".\netsvcs\Release\netsvcs.lib"
- -@erase ".\netsvcs\Release\netsvcs.exp"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"\
- /Fp"$(INTDIR)/netsvcs.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\netsvcs\Release/
-CPP_SBRS=
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/netsvcs.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 /machine:I386
-# ADD LINK32 ace.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 /machine:I386
-LINK32_FLAGS=ace.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:no\
- /pdb:"$(OUTDIR)/netsvcs.pdb" /machine:I386 /out:"$(OUTDIR)/netsvcs.dll"\
- /implib:"$(OUTDIR)/netsvcs.lib"
-LINK32_OBJS= \
- "$(INTDIR)/Logging_Strategy.obj" \
- "$(INTDIR)/Server_Logging_Handler.obj" \
- "$(INTDIR)/Name_Handler.obj" \
- "$(INTDIR)/Client_Logging_Handler.obj" \
- "$(INTDIR)/Token_Handler.obj" \
- "$(INTDIR)/TS_Clerk_Handler.obj" \
- "$(INTDIR)/TS_Server_Handler.obj"
-
-"$(OUTDIR)\netsvcs.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "netsvcs - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "netsvcs\Debug"
-# PROP BASE Intermediate_Dir "netsvcs\Debug"
-# PROP BASE Target_Dir "netsvcs"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\ace"
-# PROP Intermediate_Dir "debug"
-# PROP Target_Dir "netsvcs"
-OUTDIR=.\..\..\ace
-INTDIR=.\debug
-
-ALL : "$(OUTDIR)\netsvcs.dll"
-
-CLEAN :
- -@erase ".\debug\vc40.pdb"
- -@erase ".\debug\vc40.idb"
- -@erase "..\..\ace\netsvcs.dll"
- -@erase ".\debug\Token_Handler.obj"
- -@erase ".\debug\TS_Server_Handler.obj"
- -@erase ".\debug\Client_Logging_Handler.obj"
- -@erase ".\debug\Name_Handler.obj"
- -@erase ".\debug\Logging_Strategy.obj"
- -@erase ".\debug\TS_Clerk_Handler.obj"
- -@erase ".\debug\Server_Logging_Handler.obj"
- -@erase "..\..\ace\netsvcs.ilk"
- -@erase "..\..\ace\netsvcs.lib"
- -@erase "..\..\ace\netsvcs.exp"
- -@erase "..\..\ace\netsvcs.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# 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)/netsvcs.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\debug/
-CPP_SBRS=
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-# 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)/netsvcs.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 wsock32.lib ace.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=wsock32.lib ace.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)/netsvcs.pdb" /debug /machine:I386 /out:"$(OUTDIR)/netsvcs.dll"\
- /implib:"$(OUTDIR)/netsvcs.lib"
-LINK32_OBJS= \
- "$(INTDIR)/Token_Handler.obj" \
- "$(INTDIR)/TS_Server_Handler.obj" \
- "$(INTDIR)/Client_Logging_Handler.obj" \
- "$(INTDIR)/Name_Handler.obj" \
- "$(INTDIR)/Logging_Strategy.obj" \
- "$(INTDIR)/TS_Clerk_Handler.obj" \
- "$(INTDIR)/Server_Logging_Handler.obj"
-
-"$(OUTDIR)\netsvcs.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.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) $<
-
-################################################################################
-# Begin Target
-
-# Name "netsvcs - Win32 Release"
-# Name "netsvcs - Win32 Debug"
-
-!IF "$(CFG)" == "netsvcs - Win32 Release"
-
-!ELSEIF "$(CFG)" == "netsvcs - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\Token_Handler.cpp
-DEP_CPP_TOKEN=\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Token_Request_Reply.h"\
- {$(INCLUDE)}"\ace\Token_Collection.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- ".\Token_Handler.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\Token_Request_Reply.i"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\Token_Collection.i"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
-
-
-"$(INTDIR)\Token_Handler.obj" : $(SOURCE) $(DEP_CPP_TOKEN) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\TS_Clerk_Handler.cpp
-DEP_CPP_TS_CL=\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Time_Request_Reply.h"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- ".\TS_Clerk_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
-
-
-"$(INTDIR)\TS_Clerk_Handler.obj" : $(SOURCE) $(DEP_CPP_TS_CL) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\TS_Server_Handler.cpp
-DEP_CPP_TS_SE=\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\Time_Request_Reply.h"\
- ".\TS_Server_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
-
-
-"$(INTDIR)\TS_Server_Handler.obj" : $(SOURCE) $(DEP_CPP_TS_SE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Server_Logging_Handler.cpp
-DEP_CPP_SERVE=\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\TLI_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- ".\Server_Logging_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\TLI.h"\
- {$(INCLUDE)}"\ace\TLI_Stream.h"\
- {$(INCLUDE)}"\ace\TLI_Acceptor.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\TLI.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\TLI_Stream.i"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
-
-
-"$(INTDIR)\Server_Logging_Handler.obj" : $(SOURCE) $(DEP_CPP_SERVE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Name_Handler.cpp
-DEP_CPP_NAME_=\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Naming_Context.h"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\Name_Request_Reply.h"\
- ".\Name_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Name_Proxy.h"\
- {$(INCLUDE)}"\ace\Name_Space.h"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
-
-
-"$(INTDIR)\Name_Handler.obj" : $(SOURCE) $(DEP_CPP_NAME_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Client_Logging_Handler.cpp
-DEP_CPP_CLIEN=\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\FIFO_Recv_Msg.h"\
- ".\Client_Logging_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Set.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Set.i"\
- {$(INCLUDE)}"\ace\Set.cpp"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.i"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Stack.h"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Stack.i"\
- {$(INCLUDE)}"\ace\Stack.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Strategies.cpp"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\FIFO_Recv.h"\
- {$(INCLUDE)}"\ace\FIFO_Recv_Msg.i"\
- {$(INCLUDE)}"\ace\FIFO.h"\
- {$(INCLUDE)}"\ace\FIFO_Recv.i"\
- {$(INCLUDE)}"\ace\FIFO.i"\
-
-
-"$(INTDIR)\Client_Logging_Handler.obj" : $(SOURCE) $(DEP_CPP_CLIEN) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Logging_Strategy.cpp
-DEP_CPP_LOGGI=\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- ".\Logging_Strategy.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Time_Value.i"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
-
-
-"$(INTDIR)\Logging_Strategy.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/netsvcs/lib/netsvcs.mdp b/netsvcs/lib/netsvcs.mdp Binary files differdeleted file mode 100644 index f1d293ca6ae..00000000000 --- a/netsvcs/lib/netsvcs.mdp +++ /dev/null |