diff options
Diffstat (limited to 'examples/C++NPv1')
35 files changed, 0 insertions, 2799 deletions
diff --git a/examples/C++NPv1/Iterative_Logging_Server.cpp b/examples/C++NPv1/Iterative_Logging_Server.cpp deleted file mode 100644 index f4c28f08da7..00000000000 --- a/examples/C++NPv1/Iterative_Logging_Server.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Log_Msg.h" -#include "Iterative_Logging_Server.h" - -int main (int argc, char *argv[]) -{ - Iterative_Logging_Server server; - - if (server.run (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - return 0; -} diff --git a/examples/C++NPv1/Iterative_Logging_Server.dsp b/examples/C++NPv1/Iterative_Logging_Server.dsp deleted file mode 100644 index 84a78603b99..00000000000 --- a/examples/C++NPv1/Iterative_Logging_Server.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Iterative_Logging_Server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Iterative_Logging_Server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Iterative_Logging_Server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Iterative_Logging_Server.mak" CFG="Iterative_Logging_Server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Iterative_Logging_Server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Iterative_Logging_Server___Win32_Debug"
-# PROP BASE Intermediate_Dir "Iterative_Logging_Server___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Iterative_Logging_Server/Debug"
-# PROP Intermediate_Dir "Iterative_Logging_Server/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Iterative_Logging_Server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Iterative_Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Iterative_Logging_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Iterative_Logging_Server.h b/examples/C++NPv1/Iterative_Logging_Server.h deleted file mode 100644 index c58edc16ecb..00000000000 --- a/examples/C++NPv1/Iterative_Logging_Server.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _ITERATIVE_LOGGING_SERVER_H -#define _ITERATIVE_LOGGING_SERVER_H - -#include "ace/FILE_IO.h" -#include "ace/INET_Addr.h" -#include "ace/Log_Msg.h" - -#include "Logging_Handler.h" -#include "Logging_Server.h" - -class ACE_SOCK_Stream; - -class Iterative_Logging_Server : public Logging_Server -{ -protected: - ACE_FILE_IO log_file_; - Logging_Handler logging_handler_; - -public: - Iterative_Logging_Server () : logging_handler_ (log_file_) {} - - virtual ~Iterative_Logging_Server () { log_file_.close (); } - - Logging_Handler &logging_handler () { return logging_handler_; } - -protected: - // Override inherited open() from Logging_Server - virtual int open (u_short port) { - if (make_log_file (log_file_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "make_log_file()"), -1); - return Logging_Server::open (port); - } - - virtual int handle_connections () { - ACE_INET_Addr logging_peer_addr; - - if (acceptor ().accept (logging_handler_.peer (), - &logging_peer_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "acceptor.accept()"), -1); - - ACE_DEBUG ((LM_DEBUG, "Accepted connection from %s\n", - logging_peer_addr.get_host_name ())); - return 0; - } - - virtual int handle_data (ACE_SOCK_Stream *) { - while (logging_handler_.log_record () != -1) - continue; - - logging_handler_.close (); // Close the socket handle. - return 0; - } - -}; - -#endif /* _ITERATIVE_LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/Logging_Client.cpp b/examples/C++NPv1/Logging_Client.cpp deleted file mode 100644 index d30946fe7ff..00000000000 --- a/examples/C++NPv1/Logging_Client.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/OS.h" -#include "ace/CDR_Stream.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_Connector.h" -#include "ace/SOCK_Stream.h" -#include "ace/Log_Msg.h" -#include "ace/Log_Record.h" -#include "ace/streams.h" - -#if defined (ACE_WIN32) && (!defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \ - (ACE_HAS_STANDARD_CPP_LIBRARY == 0)) -# include <stdio.h> -#else -# include <string> -#endif - -int operator<< (ACE_OutputCDR &cdr, const ACE_Log_Record &log_record) -{ - size_t msglen = log_record.msg_data_len (); - // The ACE_Log_Record::msg_data () function is non-const, since it - // returns a non-const pointer to internal class members. Since we - // know that no members are modified here, we can safely const_cast - // the log_record parameter without violating the interface - // contract. - ACE_Log_Record &nonconst_record = (ACE_const_cast (ACE_Log_Record&, - log_record)); - // Insert each field from <log_record> into the output CDR stream. - cdr << ACE_CDR::Long (log_record.type ()); - cdr << ACE_CDR::Long (log_record.pid ()); - cdr << ACE_CDR::Long (log_record.time_stamp ().sec ()); - cdr << ACE_CDR::Long (log_record.time_stamp ().usec ()); - cdr << ACE_CDR::ULong (msglen); - cdr.write_char_array (nonconst_record.msg_data (), msglen); - return cdr.good_bit (); -} - - -class Logging_Client { -private: - ACE_SOCK_Stream logging_peer_; - -public: - ACE_SOCK_Stream &peer () { return logging_peer_; } - - int send (const ACE_Log_Record &log_record) { - // Serialize the log record using a CDR stream, allocate - // enough space for the complete <ACE_Log_Record>. - const size_t max_payload_size = - 4 // type() - + 8 // timestamp - + 4 // process id - + 4 // data length - + ACE_Log_Record::MAXLOGMSGLEN // data - + ACE_CDR::MAX_ALIGNMENT; // padding; - - // Insert contents of <log_record> into payload stream. - ACE_OutputCDR payload (max_payload_size); - payload << log_record; - - // Get the number of bytes used by the CDR stream. - ACE_CDR::ULong length = payload.total_length (); - - // Send a header so the receiver can determine the byte - // order and size of the incoming CDR stream. - ACE_OutputCDR header (ACE_CDR::MAX_ALIGNMENT + 8); - header << ACE_OutputCDR::from_boolean (ACE_CDR_BYTE_ORDER); - - // Store the size of the payload that follows - header << ACE_CDR::ULong (length); - // Use an iovec to send both buffer and payload simultaneously. - iovec iov[2]; - iov[0].iov_base = header.begin ()->rd_ptr (); - iov[0].iov_len = 8; - iov[1].iov_base = payload.begin ()->rd_ptr (); - iov[1].iov_len = length; - - // Send header and payload efficiently using "gather-write". - return logging_peer_.sendv_n (iov, 2); - } - - ~Logging_Client () { logging_peer_.close (); } -}; - - -int main (int argc, char *argv[]) -{ - u_short logger_port = argc > 1 ? atoi (argv[1]) : 0; - const char *logger_host = - argc > 2 ? argv[2] : ACE_DEFAULT_SERVER_HOST; - int result; - - ACE_INET_Addr server_addr; - - if (logger_port != 0) - result = server_addr.set (logger_port, logger_host); - else - result = server_addr.set ("ace_logger", logger_host); - if (result == -1) - ACE_ERROR_RETURN ((LM_ERROR, "lookup %s, %p\n", - logger_port == 0 ? "ace_logger" : argv[1], - logger_host), 1); - - ACE_SOCK_Connector connector; - Logging_Client logging_client; - - if (connector.connect (logging_client.peer (), server_addr) < 0) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connect()"), 1); - -#if defined (ACE_WIN32) && (!defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \ - (ACE_HAS_STANDARD_CPP_LIBRARY == 0)) - for (;;) { - char user_input[ACE_Log_Record::MAXLOGMSGLEN]; - if (!gets (user_input)) - break; - - ACE_Time_Value now (ACE_OS::gettimeofday ()); - ACE_Log_Record log_record (LM_INFO, now, ACE_OS::getpid ()); - log_record.msg_data (user_input); - if (logging_client.send (log_record) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", "logging_client.send()"), 1); - } -#else - - // Limit the number of characters read on each record - cin.width (ACE_Log_Record::MAXLOGMSGLEN); - - for (;;) { - std::string user_input; - std::getline (cin, user_input, '\n'); - - if (!cin || cin.eof ()) break; - - ACE_Time_Value now (ACE_OS::gettimeofday ()); - ACE_Log_Record log_record (LM_INFO, now, ACE_OS::getpid ()); - log_record.msg_data (user_input.c_str ()); - if (logging_client.send (log_record) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", "logging_client.send()"), 1); - } -#endif - - return 0; // Logging_Client destructor closes TCP connection. -} diff --git a/examples/C++NPv1/Logging_Client.dsp b/examples/C++NPv1/Logging_Client.dsp deleted file mode 100644 index 9085115469c..00000000000 --- a/examples/C++NPv1/Logging_Client.dsp +++ /dev/null @@ -1,71 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Logging_Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Logging_Client - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Logging_Client.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Logging_Client.mak" CFG="Logging_Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Logging_Client - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Logging_Client/Debug"
-# PROP Intermediate_Dir "Logging_Client/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Logging_Client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Logging_Handler.cpp b/examples/C++NPv1/Logging_Handler.cpp deleted file mode 100644 index ee5b25160ac..00000000000 --- a/examples/C++NPv1/Logging_Handler.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/ACE.h" -#include "ace/CDR_Stream.h" -#include "ace/INET_Addr.h" -#include "ace/Log_Record.h" -#include "ace/Message_Block.h" - -#include "Logging_Handler.h" - - -int operator>> (ACE_InputCDR &cdr, ACE_Log_Record &log_record) -{ - ACE_CDR::Long type; - ACE_CDR::Long pid; - ACE_CDR::Long sec, usec; - ACE_CDR::ULong buffer_len; - - // Extract each field from input CDR stream into <log_record>. - if ((cdr >> type) && (cdr >> pid) && (cdr >> sec) && (cdr >> usec) - && (cdr >> buffer_len)) { - ACE_TCHAR log_msg[ACE_Log_Record::MAXLOGMSGLEN+1]; - log_record.type (type); - log_record.pid (pid); - log_record.time_stamp (ACE_Time_Value (sec, usec)); - cdr.read_char_array (log_msg, buffer_len); - log_msg[buffer_len] = '\0'; - log_record.msg_data (log_msg); - } - return cdr.good_bit (); -} - - -int Logging_Handler::recv_log_record (ACE_Message_Block *&mblk) -{ - // Put <logging_peer>'s hostname in new message block. - ACE_INET_Addr peer_addr; - logging_peer_.get_remote_addr (peer_addr); - mblk = new ACE_Message_Block (MAXHOSTNAMELEN + 1); - peer_addr.get_host_name (mblk->wr_ptr (), MAXHOSTNAMELEN); - mblk->wr_ptr (strlen (mblk->wr_ptr ()) + 1); // Go past name - - // Allocate a message block for the payload; initially at least - // large enough to hold the header, but needs some room for - // alignment. - ACE_Message_Block *payload = - new ACE_Message_Block (ACE_DEFAULT_CDR_BUFSIZE); - // Align the Message Block for a CDR stream - ACE_CDR::mb_align (payload); - if (logging_peer_.recv_n (payload->wr_ptr (), 8) == 8) { - payload->wr_ptr (8); // Reflect addition of 8 bytes - - // Create a CDR stream to parse the 8-byte header. - ACE_InputCDR cdr (payload); - - // Extract the byte-order and use helper methods to - // disambiguate octet, booleans, and chars. - ACE_CDR::Boolean byte_order; - cdr >> ACE_InputCDR::to_boolean (byte_order); - - // Set the byte-order on the stream... - cdr.reset_byte_order (byte_order); - - // Extract the length - ACE_CDR::ULong length; - cdr >> length; - - // Ensure there's sufficient room for log record payload. - ACE_CDR::grow (payload, 8 + ACE_CDR::MAX_ALIGNMENT + length); - - // Use <recv_n> to obtain the contents. - if (logging_peer_.recv_n (payload->wr_ptr (), length) > 0) { - payload->wr_ptr (length); // Reflect additional bytes - // Chain the payload to mblk via the contination field. - mblk->cont (payload); - return length; - } - } - // Error cases end up here, so we need to release the memory to - // prevent a leak. - payload->release (); - payload = 0; - mblk->release (); - mblk = 0; - return -1; -} - - -int Logging_Handler::write_log_record (ACE_Message_Block *mblk) -{ - // Peer hostname is in the <mblk> and the log record data - // is in its continuation. - if (log_file_.send_n (mblk) == -1) - return -1; - if (ACE::debug ()) { - // Build a CDR stream from the log record data. - ACE_InputCDR cdr (mblk->cont ()); - ACE_CDR::Boolean byte_order; - ACE_CDR::ULong length; - // Extract the byte-order and length, ending up at the start - // of the log record itself. Use the byte order to properly - // set the CDR stream for extracting the contents. - cdr >> ACE_InputCDR::to_boolean (byte_order); - cdr.reset_byte_order (byte_order); - cdr >> length; - ACE_Log_Record log_record; - cdr >> log_record; // Finally extract the <ACE_log_record>. - log_record.print (mblk->rd_ptr (), 1, cerr); - } - return mblk->total_length (); -} - - -int Logging_Handler::log_record () -{ - ACE_Message_Block *mblk = 0; - if (recv_log_record (mblk) == -1) - return -1; - else { - int result = write_log_record (mblk); - mblk->release (); // Free up the contents. - return result == -1 ? -1 : 0; - } -} diff --git a/examples/C++NPv1/Logging_Handler.h b/examples/C++NPv1/Logging_Handler.h deleted file mode 100644 index 80de5ebac51..00000000000 --- a/examples/C++NPv1/Logging_Handler.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _LOGGING_HANDLER_H -#define _LOGGING_HANDLER_H - -#include "ace/FILE_IO.h" -#include "ace/SOCK_Stream.h" - -class ACE_Message_Block; - -class Logging_Handler -{ -protected: - ACE_FILE_IO &log_file_; // Reference to a log file. - - ACE_SOCK_Stream logging_peer_; // Connected to the client. - -public: - // Initialization and termination methods. - Logging_Handler (ACE_FILE_IO &log_file): log_file_ (log_file) {} - Logging_Handler (ACE_FILE_IO &log_file, - ACE_HANDLE handle): log_file_ (log_file) - { logging_peer_.set_handle (handle); } - Logging_Handler (ACE_FILE_IO &log_file, - const ACE_SOCK_Stream &logging_peer) - : log_file_ (log_file), logging_peer_ (logging_peer) {} - int close () { return logging_peer_.close (); } - - // Receive one log record from a connected client. Returns - // length of record on success and <mblk> contains the - // hostname, <mblk->cont()> contains the log record header - // (the byte order and the length) and the data. Returns -1 on - // failure or connection close. - int recv_log_record (ACE_Message_Block *&log_record); - - // Write one record to the log file. The <mblk> contains the - // hostname and the <mblk->cont> contains the log record. - // Returns length of record written on success, or -1 on failure. - int write_log_record (ACE_Message_Block *log_record); - - // Log one record by calling <recv_log_record> and - // <write_log_record>. Returns 0 on success and -1 on failure. - int log_record (); - - // Accessor method. - ACE_SOCK_Stream &peer () { return logging_peer_; } -}; - -#endif /* _LOGGING_HANDLER_H */ diff --git a/examples/C++NPv1/Logging_Server.cpp b/examples/C++NPv1/Logging_Server.cpp deleted file mode 100644 index ec4317a6d97..00000000000 --- a/examples/C++NPv1/Logging_Server.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/FILE_Addr.h" -#include "ace/FILE_Connector.h" -#include "ace/FILE_IO.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_Stream.h" -#include "Logging_Server.h" - -int Logging_Server::run (int argc, char *argv[]) -{ - if (open (argc > 1 ? atoi (argv[1]) : 0) == -1) - return -1; - - for (;;) { - if (wait_for_multiple_events () == -1) - return -1; - if (handle_connections () == -1) - return -1; - if (handle_data () == -1) - return -1; - } - - return 0; -} - - -int Logging_Server::open (u_short logger_port) -{ - ACE_INET_Addr server_addr; - int result; - - if (logger_port != 0) - result = server_addr.set (logger_port, - (ACE_UINT32) INADDR_ANY); - else - result = server_addr.set ("ace_logger", - (ACE_UINT32) INADDR_ANY); - if (result == -1) return -1; - - // Start listening, enable reuse of listen address for quick restarts. - return acceptor_.open (server_addr, 1); -} - - -int Logging_Server::make_log_file (ACE_FILE_IO &logging_file, - ACE_SOCK_Stream *logging_peer) -{ - char filename[MAXHOSTNAMELEN + sizeof (".log")]; - - if (logging_peer != 0) { // Use client's hostname as log file name. - ACE_INET_Addr logging_peer_addr; - logging_peer->get_remote_addr (logging_peer_addr); - logging_peer_addr.get_host_name (filename, MAXHOSTNAMELEN); - strcat (filename, ".log"); - } - else - strcpy (filename, "logging_server.log"); - - ACE_FILE_Connector connector; - return connector.connect (logging_file, - ACE_FILE_Addr (filename), - 0, // No timeout. - ACE_Addr::sap_any, // Ignored. - 0, // Don't try to reuse the addr. - O_RDWR|O_CREAT|O_APPEND, - ACE_DEFAULT_FILE_PERMS); -} diff --git a/examples/C++NPv1/Logging_Server.h b/examples/C++NPv1/Logging_Server.h deleted file mode 100644 index 1fd03bac775..00000000000 --- a/examples/C++NPv1/Logging_Server.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _LOGGING_SERVER_H -#define _LOGGING_SERVER_H - -#include "ace/FILE_IO.h" -#include "ace/SOCK_Acceptor.h" - -class ACE_SOCK_Stream; - -class Logging_Server -{ -public: - // Template Method that runs logging server's event loop. - virtual int run (int argc, char *argv[]); - -protected: - // The following four methods are ``hooks'' that can be - // overridden by subclasses. - virtual int open (u_short port = 0); - virtual int wait_for_multiple_events () { return 0; } - virtual int handle_connections () = 0; - virtual int handle_data (ACE_SOCK_Stream * = 0) = 0; - - // The following helper method can be used by the hook methods. - int make_log_file (ACE_FILE_IO &, ACE_SOCK_Stream * = 0); - - // Close the socket endpoint. - virtual ~Logging_Server () { acceptor_.close (); } - - // Accessor. - ACE_SOCK_Acceptor &acceptor () { return acceptor_; } - -private: - ACE_SOCK_Acceptor acceptor_; // Socket acceptor endpoint. -}; - -#endif /* _LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/Makefile b/examples/C++NPv1/Makefile deleted file mode 100644 index 19357b76dea..00000000000 --- a/examples/C++NPv1/Makefile +++ /dev/null @@ -1,416 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the example programs in "C++ Network Programming, -# Vol. 1, Resolving Complexity Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- -MAKEFILE=Makefile - -MKLIST = Makefile.Iterative_Logging_Server \ - Makefile.Logging_Client \ - Makefile.Process_Per_Connection_Logging_Server \ - Makefile.Reactive_Logging_Server \ - Makefile.Reactive_Logging_Server_Ex \ - Makefile.RT_Thread_Per_Connection_Logging_Server \ - Makefile.Thread_Per_Connection_Logging_Server - -## Ensure that Makefiles in MKLIST are executed in sequence during a -## parallel build because we share some files between multiple libraries. -.NOTPARALLEL: - -## Makefile.Reactive_Logging_Server_Ex.mkfile is a dummy target which will cause -## $(MAKE) -f Makefile.Reactive_Logging_Server_Ex to be invoked -%.mkfile: % - @echo $(MAKE) -f $< $(MKFILE_TARGET) - @$(MAKE) -f $< $(MKFILE_TARGET) - -# This rule invokes make again with the list of .mkfile targets as a -# parameter. For example, if the all target is being made, make is invoked -# as follows: -# -# make -f Makefile MKFILE_TARGET=all Makefile.Reactive_Logging_Server_Ex - -all clean depend realclean: -ifneq ($(MKLIST),) - @echo $(MAKE) -f $(MAKEFILE) MKFILE_TARGET=$@ $(addsuffix .mkfile, $(MKLIST)) - @$(MAKE) -f $(MAKEFILE) MKFILE_TARGET=$@ $(addsuffix .mkfile, $(MKLIST)) -endif - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - -.obj/Thread_Per_Connection_Logging_Server.o .obj/Thread_Per_Connection_Logging_Server.so .shobj/Thread_Per_Connection_Logging_Server.o .shobj/Thread_Per_Connection_Logging_Server.so: \ - Thread_Per_Connection_Logging_Server.cpp \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Global_Macros.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/FILE_IO.h \ - $(ACE_ROOT)/ace/FILE.h $(ACE_ROOT)/ace/IO_SAP.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ - $(ACE_ROOT)/ace/Default_Constants.h \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/IO_SAP.i \ - $(ACE_ROOT)/ace/FILE_Addr.h \ - $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/FILE_Addr.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/String_Base.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/String_Base.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Unbounded_Set.h \ - $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ - $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/FILE.i \ - $(ACE_ROOT)/ace/FILE_IO.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Exit.h \ - $(ACE_ROOT)/ace/Thread_Control.h \ - $(ACE_ROOT)/ace/Thread_Control.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ - $(ACE_ROOT)/ace/Array_Base.cpp \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Framework_Component.h \ - $(ACE_ROOT)/ace/Framework_Component.inl \ - $(ACE_ROOT)/ace/Framework_Component_T.h \ - $(ACE_ROOT)/ace/Framework_Component_T.inl \ - $(ACE_ROOT)/ace/Framework_Component_T.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - Thread_Per_Connection_Logging_Server.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i Logging_Server.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i Logging_Handler.h - -.obj/Logging_Handler.o .obj/Logging_Handler.so .shobj/Logging_Handler.o .shobj/Logging_Handler.so: Logging_Handler.cpp $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/pre.h $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ - $(ACE_ROOT)/ace/Default_Constants.h \ - $(ACE_ROOT)/ace/Global_Macros.h \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Base.h \ - $(ACE_ROOT)/ace/CDR_Base.inl \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/String_Base.h \ - $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/String_Base.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Unbounded_Set.h \ - $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ - $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ - $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/Addr.h $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Record.i Logging_Handler.h \ - $(ACE_ROOT)/ace/FILE_IO.h \ - $(ACE_ROOT)/ace/FILE.h $(ACE_ROOT)/ace/IO_SAP.h \ - $(ACE_ROOT)/ace/IO_SAP.i \ - $(ACE_ROOT)/ace/FILE_Addr.h \ - $(ACE_ROOT)/ace/FILE_Addr.i \ - $(ACE_ROOT)/ace/FILE.i \ - $(ACE_ROOT)/ace/FILE_IO.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i - -.obj/Logging_Server.o .obj/Logging_Server.so .shobj/Logging_Server.o .shobj/Logging_Server.so: Logging_Server.cpp \ - $(ACE_ROOT)/ace/FILE_Addr.h \ - $(ACE_ROOT)/ace/pre.h $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ - $(ACE_ROOT)/ace/Default_Constants.h \ - $(ACE_ROOT)/ace/Global_Macros.h \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/FILE_Addr.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/String_Base.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/String_Base.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Unbounded_Set.h \ - $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ - $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/FILE_Connector.h \ - $(ACE_ROOT)/ace/FILE_IO.h \ - $(ACE_ROOT)/ace/FILE.h $(ACE_ROOT)/ace/IO_SAP.h \ - $(ACE_ROOT)/ace/IO_SAP.i $(ACE_ROOT)/ace/FILE.i \ - $(ACE_ROOT)/ace/FILE_IO.i \ - $(ACE_ROOT)/ace/FILE_Connector.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i Logging_Server.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/examples/C++NPv1/Makefile.Iterative_Logging_Server b/examples/C++NPv1/Makefile.Iterative_Logging_Server deleted file mode 100644 index 357b92a31dd..00000000000 --- a/examples/C++NPv1/Makefile.Iterative_Logging_Server +++ /dev/null @@ -1,38 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the iterative logging server example program in -# "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Iterative_Logging_Server - -FILES = Iterative_Logging_Server Logging_Server Logging_Handler - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.Logging_Client b/examples/C++NPv1/Makefile.Logging_Client deleted file mode 100644 index 2f635114283..00000000000 --- a/examples/C++NPv1/Makefile.Logging_Client +++ /dev/null @@ -1,38 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the logging client example program in "C++ -# Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Logging_Client - -FILES = Logging_Client - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.Process_Per_Connection_Logging_Server b/examples/C++NPv1/Makefile.Process_Per_Connection_Logging_Server deleted file mode 100644 index 9bacc6d5a09..00000000000 --- a/examples/C++NPv1/Makefile.Process_Per_Connection_Logging_Server +++ /dev/null @@ -1,40 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the Process-Per-Connection logging server example -# program in "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Process_Per_Connection_Logging_Server - -FILES = Process_Per_Connection_Logging_Server \ - Logging_Handler \ - Logging_Server - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.RT_Thread_Per_Connection_Logging_Server b/examples/C++NPv1/Makefile.RT_Thread_Per_Connection_Logging_Server deleted file mode 100644 index 86e064dcdc3..00000000000 --- a/examples/C++NPv1/Makefile.RT_Thread_Per_Connection_Logging_Server +++ /dev/null @@ -1,40 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the real-time Thread-Per-Connection logging server -# example program in "C++ Network Programming, Vol. 1, Resolving -# Complexity Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = RT_Thread_Per_Connection_Logging_Server - -FILES = RT_Thread_Per_Connection_Logging_Server \ - Logging_Handler \ - Logging_Server - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.Reactive_Logging_Server b/examples/C++NPv1/Makefile.Reactive_Logging_Server deleted file mode 100644 index 0a2f801e2d7..00000000000 --- a/examples/C++NPv1/Makefile.Reactive_Logging_Server +++ /dev/null @@ -1,38 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the reactive logging server example program in -# "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Reactive_Logging_Server - -FILES = Reactive_Logging_Server Logging_Server Logging_Handler - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.Reactive_Logging_Server_Ex b/examples/C++NPv1/Makefile.Reactive_Logging_Server_Ex deleted file mode 100644 index 3d4a845f13d..00000000000 --- a/examples/C++NPv1/Makefile.Reactive_Logging_Server_Ex +++ /dev/null @@ -1,38 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the extended reactive logging server example program -# in "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Reactive_Logging_Server_Ex - -FILES = Reactive_Logging_Server_Ex Logging_Server Logging_Handler - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Makefile.Thread_Per_Connection_Logging_Server b/examples/C++NPv1/Makefile.Thread_Per_Connection_Logging_Server deleted file mode 100644 index 919baa4c5bd..00000000000 --- a/examples/C++NPv1/Makefile.Thread_Per_Connection_Logging_Server +++ /dev/null @@ -1,40 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the Thread-Per-Connection logging server example -# program in "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Thread_Per_Connection_Logging_Server - -FILES = Thread_Per_Connection_Logging_Server \ - Logging_Handler \ - Logging_Server - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp b/examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp deleted file mode 100644 index 419aaf6c0b1..00000000000 --- a/examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Log_Msg.h" -#include "ace/Process_Manager.h" -#include "ace/Signal.h" - -#include "Process_Per_Connection_Logging_Server.h" -#include "Logging_Handler.h" - -#include <errno.h> - -namespace { - extern "C" void sigterm_handler (int /* signum */) { /* No-op. */ } -} - - -Logging_Process::Logging_Process (const char *prog_name, - const ACE_SOCK_Stream &logging_peer) - : logging_peer_ (logging_peer.get_handle ()) -{ - strcpy (prog_name_, prog_name); -} - -// Set up the process options here. If the decision to do a fork -// a no exec on POSIX needs to be changed, this is the only place -// that needs to change (omit the creation_flags() call). -// We request that the logging client's socket handle be passed -// to the child process. The internals of ACE_Process insure that -// it gets put on the command line if starting a new program image, -// and that if it needed to be duplicated to accomplish that (such -// as on Win32) it will get properly closed. -// The process_name () call sets the program to run and is also used -// for the fork() call on POSIX. -// avoid_zombies has a real affect only on POSIX; it's harmless on Win32. -// Setting the NO_EXEC creation flag is what prevents the exec() on -// POSIX. It has no affect on Win32. -int -Logging_Process::prepare (ACE_Process_Options &options) -{ - if (options.pass_handle (logging_peer_.get_handle ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "pass_handle"), -1); - options.command_line ("%s", prog_name_); - options.avoid_zombies (1); - options.creation_flags (ACE_Process_Options::NO_EXEC); - return 0; -} - -// Just delete the process object. If any handles needed to be -// duplicated to be passed to the child, they'll get closed now -// by the ACE_Process destructor. -void -Logging_Process::unmanage () -{ - delete this; -} - - -int -Process_Per_Connection_Logging_Server::handle_connections () -{ - ACE_SOCK_Stream logging_peer; - - // Block until a client connects. - if (acceptor ().accept (logging_peer) == -1) - return -1; - - Logging_Process *logger = - new Logging_Process (prog_name_, logging_peer); - ACE_Process_Options options; - pid_t pid; - pid = ACE_Process_Manager::instance ()->spawn (logger, - options); - // If we came back with pid 0 from the spawn(), this is a - // POSIX fork system - we are in the child process. Handle the - // logging records, then exit. - if (pid == 0) { - acceptor().close (); - handle_data (&logging_peer); - delete logger; - ACE_OS::exit (0); - } - logging_peer.close (); - if (pid == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "spawn()"), -1); - - // See if there are any child processes that have - // exited - reap their status and clean up handles held - // open while the child executed. - ACE_Process_Manager::instance ()->wait (0, - ACE_Time_Value::zero); - return 0; -} - -int -Process_Per_Connection_Logging_Server::handle_data (ACE_SOCK_Stream *client) -{ - // Disable non-blocking mode. - client->disable (ACE_NONBLOCK); - ACE_FILE_IO log_file; - make_log_file (log_file, client); - Logging_Handler logging_handler (log_file, *client); - - while (logging_handler.log_record () != -1) - continue; - - log_file.close (); - return 0; -} - - -int -Process_Per_Connection_Logging_Server::run (int argc, char *argv[]) -{ - strncpy (prog_name_, argv[0], MAXPATHLEN); - prog_name_[MAXPATHLEN] = '\0'; // Ensure NUL-termination. - // If there are 2 command line arguments after prog_name_, this - // is a spawned worker process. Else run as the master. - if (argc == 3) - return run_worker (argc, argv); // Only on Win32. - else - return run_master (argc, argv); -} - -int -Process_Per_Connection_Logging_Server::run_master (int argc, char *argv[]) -{ - u_short logger_port = 0; - if (argc == 2) - logger_port = atoi (argv[1]); - if (open (logger_port) == -1) - return -1; - - for (;;) - if (handle_connections () == -1) - return -1; - - return 0; -} - -int -Process_Per_Connection_Logging_Server::run_worker (int, char *argv[]) -{ - int client_handle_i = atoi (argv[2]); - // Some compilers don't like reinterpret_casting an int to an int, so - // only do reinterpret_cast on Windows. -#if defined (ACE_WIN32) - ACE_HANDLE client_handle = - ACE_reinterpret_cast (ACE_HANDLE, client_handle_i); -#else - ACE_HANDLE client_handle = - ACE_static_cast (ACE_HANDLE, client_handle_i); -#endif /* ACE_WIN32 */ - ACE_SOCK_Stream client (client_handle); - - handle_data (&client); - client.close (); - return 0; -} - - -int main (int argc, char *argv[]) -{ - // Register to receive the <SIGTERM> signal. - ACE_Sig_Action sa ((ACE_SignalHandler)sigterm_handler, - SIGTERM); - - Process_Per_Connection_Logging_Server server; - - if (server.run (argc, argv) == -1 && errno != EINTR) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - - // Barrier synchronization. - return ACE_Process_Manager::instance ()->wait (); -} diff --git a/examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp b/examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp deleted file mode 100644 index 09c95b6564f..00000000000 --- a/examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Process_Per_Connection_Logging_Server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Process_Per_Connection_Logging_Server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Process_Per_Connection_Logging_Server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Process_Per_Connection_Logging_Server.mak" CFG="Process_Per_Connection_Logging_Server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Process_Per_Connection_Logging_Server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Process_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Intermediate_Dir "Process_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Process_Per_Connection_Logging_Server/Debug"
-# PROP Intermediate_Dir "Process_Per_Connection_Logging_Server/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Process_Per_Connection_Logging_Server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Per_Connection_Logging_Server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Process_Per_Connection_Logging_Server.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Process_Per_Connection_Logging_Server.h b/examples/C++NPv1/Process_Per_Connection_Logging_Server.h deleted file mode 100644 index 4d64d764bfd..00000000000 --- a/examples/C++NPv1/Process_Per_Connection_Logging_Server.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _PROCESS_PER_CONNECTION_LOGGING_SERVER_H -#define _PROCESS_PER_CONNECTION_LOGGING_SERVER_H - -#include "ace/INET_Addr.h" -#include "ace/Log_Record.h" -#include "ace/Process.h" -#include "ace/Process_Manager.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Stream.h" -#include "ace/Signal.h" -#include "Logging_Server.h" - -class Logging_Process : public ACE_Process -{ -public: - Logging_Process (const char *prog_name, - const ACE_SOCK_Stream &logging_peer); - - virtual int prepare (ACE_Process_Options &options); - virtual void unmanage (); - -private: - Logging_Process (); // Force desired constructor to be used. - - char prog_name_[MAXPATHLEN + 1]; - ACE_SOCK_Stream logging_peer_; -}; - - -class Process_Per_Connection_Logging_Server : public Logging_Server -{ -protected: - char prog_name_[MAXPATHLEN + 1]; - -protected: - virtual int handle_connections (); - virtual int handle_data (ACE_SOCK_Stream *client = 0); - - int run_master (int argc, char *argv[]); - int run_worker (int argc, char *argv[]); - -public: - virtual int run (int argc, char *argv[]); - -}; - -#endif /* _PROCESS_PER_CONNECTION_LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/Process_Per_Connection_Logging_Server.mak b/examples/C++NPv1/Process_Per_Connection_Logging_Server.mak deleted file mode 100644 index 9bacc6d5a09..00000000000 --- a/examples/C++NPv1/Process_Per_Connection_Logging_Server.mak +++ /dev/null @@ -1,40 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the Process-Per-Connection logging server example -# program in "C++ Network Programming, Vol. 1, Resolving Complexity -# Using Patterns and ACE" -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Process_Per_Connection_Logging_Server - -FILES = Process_Per_Connection_Logging_Server \ - Logging_Handler \ - Logging_Server - -SRC = $(addsuffix .cpp,$(FILES)) -OBJ = $(addsuffix .o,$(FILES)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# To build multiple executables in the same directory on AIX, it works -# best to wipe out any previously-created tempinc directory. -# The compiler/linker isn't too smart about instantiating templates... -ifdef TEMPINCDIR -COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) -endif diff --git a/examples/C++NPv1/README b/examples/C++NPv1/README deleted file mode 100644 index 747fa24ecfc..00000000000 --- a/examples/C++NPv1/README +++ /dev/null @@ -1,73 +0,0 @@ -(This is file $Id$) - -The files in this directory contain the source code from the book -``C++ Network Programming: Mastering Complexity Using ACE and -Patterns'' (C++NPv1) by Douglas C. Schmidt and Stephen D. Huston -(Addison-Wesley 2001, ISBN 0-201-60464-7). - -We have compiled and run these files on the following platforms: - - Sun Solaris 8 on SPARC using Sun Forte 6. - Redhat Linux 7.1 using g++ 2.96. - Microsoft Windows 2000 using Microsoft Visual C++ 6. - -You must have the ACE_ROOT environment variable set correctly to build -these examples. ACE_ROOT must refer to the top-level ACE_wrappers -directory. Please see $ACE_ROOT/ACE-INSTALL.html for instructions on -how to build the ACE toolkit. - -Mapping Source Files to Book Chapters -------------------------------------- - -The files in this directory map to the chapters in C++NPv1 as follows: - -Chapter 4 Logging_Client.h - Logging_Client.cpp - Logging_Handler.h - Logging_Handler.cpp - Iterative_Logging_Server.h - Iterative_Logging_Server.cpp - -Chapter 7 Reactive_Logging_Server.h - Reactive_Logging_Server.cpp - Reactive_Logging_Server_Ex.h - Reactive_Logging_Server_Ex.cpp - -Chapter 8 Process_Per_Connection_Logging_Server.h - Process_Per_Connection_Logging_Server.cpp - -Chapter 9 Thread_Per_Connection_Logging_Server.h - Thread_Per_Connection_Logging_Server.cpp - RT_Thread_Per_Connection_Logging_Server.h - RT_Thread_Per_Connection_Logging_Server.cpp - -Microsoft Visual C++ users: ---------------------------- - -The examples.dsw file is a Microsoft Visual C++ workspace file that -contains projects for the individual programs. You can either build -them separately, or use the Batch Build command to build multiple -projects at once. - -All other users: ----------------- - -Assuming that your system is configured correctly, you should be able -to type - -% make - -to compile all of the programs, and - -% make clean - -to remove all the files that were generated during compilation. - -There are also individual Makefiles for each separate example program. -These makefiles have a ".mak" suffix. For example, Logging_Client.mak -is the makefile for the Logging_Client program. - -All of the files in these directories are copyright Addison Wesley, -and they come with absolutely no warranty whatsoever. Permission is -hereby granted to use these programs for educational or commercial -purposes. diff --git a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp b/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp deleted file mode 100644 index 0be97237952..00000000000 --- a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Auto_Ptr.h" -#include "ace/FILE_IO.h" -#include "ace/Log_Msg.h" -#include "ace/Sched_Params.h" -#include "ace/Signal.h" -#include "ace/Thread_Manager.h" - -#include "RT_Thread_Per_Connection_Logging_Server.h" -#include "Logging_Handler.h" - -#include <errno.h> - -namespace { - extern "C" void sigterm_handler (int /* signum */) { /* No-op. */ } -} - - -int -RT_Thread_Per_Connection_Logging_Server::open (u_short port) -{ - ACE_Sched_Params fifo_sched_params - (ACE_SCHED_FIFO, - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO), - ACE_SCOPE_PROCESS); - - if (ACE_OS::sched_params (fifo_sched_params) != 0) { - if (errno == EPERM || errno == ENOTSUP) - ACE_DEBUG ((LM_DEBUG, - "Warning: user's not superuser, so " - "we're running in time-shared class\n")); - else - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", "ACE_OS::sched_params()"), -1); - } - // Initialize the parent classes. - return Thread_Per_Connection_Logging_Server::open (port); -} - - -int -RT_Thread_Per_Connection_Logging_Server::handle_data (ACE_SOCK_Stream *client) -{ - int prio = - ACE_Sched_Params::next_priority - (ACE_SCHED_FIFO, - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO), - ACE_SCOPE_THREAD); - ACE_OS::thr_setprio (prio); - return Thread_Per_Connection_Logging_Server::handle_data (client); -} - - -// For simplicity, the Thread_Per_Connection_Logging_Server methods -// are duplicated here. - -ACE_THR_FUNC_RETURN Thread_Per_Connection_Logging_Server::run_svc (void *arg) -{ - auto_ptr<Thread_Args> thread_args (ACE_static_cast (Thread_Args *, arg)); - - thread_args->this_->handle_data (&thread_args->logging_peer_); - thread_args->logging_peer_.close (); - return 0; // Return value is ignored -} - - -int -Thread_Per_Connection_Logging_Server::handle_connections () -{ - auto_ptr<Thread_Args> thread_args (new Thread_Args (this)); - - if (acceptor ().accept (thread_args->logging_peer_) == -1) - return -1; - if (ACE_Thread_Manager::instance ()->spawn ( - // Pointer to function entry point. - Thread_Per_Connection_Logging_Server::run_svc, - // <run_svc> parameter. - ACE_static_cast (void *, thread_args.get ()), - THR_DETACHED | THR_SCOPE_SYSTEM) == -1) - return -1; - thread_args.release (); // Spawned thread now owns memory - return 0; -} - - -int -Thread_Per_Connection_Logging_Server::handle_data (ACE_SOCK_Stream *client) -{ - ACE_FILE_IO log_file; - // Client's hostname is logfile name. - make_log_file (log_file, client); - - // Place the connection into blocking mode since this - // thread isn't doing anything except handling this client. - client->disable (ACE_NONBLOCK); - - Logging_Handler logging_handler (log_file, *client); - - // Keep handling log records until client closes connection - // or this thread is asked to cancel itself. - ACE_Thread_Manager *mgr = ACE_Thread_Manager::instance (); - ACE_thread_t me = ACE_Thread::self (); - while (!mgr->testcancel (me) && - logging_handler.log_record () != -1) - continue; - - log_file.close (); - return 0; -} - - -int main (int argc, char *argv[]) -{ - // Register to receive the <SIGTERM> signal. - ACE_Sig_Action sa ((ACE_SignalHandler) sigterm_handler, - SIGTERM); - - RT_Thread_Per_Connection_Logging_Server server; - - if (server.run (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - - // Cooperative thread cancellation and barrier synchronization. - ACE_Thread_Manager::instance ()->cancel_all (); - return ACE_Thread_Manager::instance ()->wait (); -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr<Thread_Per_Connection_Logging_Server::Thread_Args>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr<Thread_Per_Connection_Logging_Server::Thread_Args> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp b/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp deleted file mode 100644 index 703ab8f4972..00000000000 --- a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="RT_Thread_Per_Connection_Logging_Server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=RT_Thread_Per_Connection_Logging_Server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "RT_Thread_Per_Connection_Logging_Server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "RT_Thread_Per_Connection_Logging_Server.mak" CFG="RT_Thread_Per_Connection_Logging_Server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "RT_Thread_Per_Connection_Logging_Server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "RT_Thread_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Intermediate_Dir "RT_Thread_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "RT_Thread_Per_Connection_Logging_Server/Debug"
-# PROP Intermediate_Dir "RT_Thread_Per_Connection_Logging_Server/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "RT_Thread_Per_Connection_Logging_Server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RT_Thread_Per_Connection_Logging_Server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RT_Thread_Per_Connection_Logging_Server.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.h b/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.h deleted file mode 100644 index 828a0e61a03..00000000000 --- a/examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _RT_THREAD_PER_CONNECTION_LOGGING_SERVER_H -#define _RT_THREAD_PER_CONNECTION_LOGGING_SERVER_H - -#include "ace/SOCK_Stream.h" -#include "Logging_Server.h" -#include "Thread_Per_Connection_Logging_Server.h" - -class RT_Thread_Per_Connection_Logging_Server : - public Thread_Per_Connection_Logging_Server -{ -protected: - virtual int open (u_short port); - virtual int handle_data (ACE_SOCK_Stream * = 0); -}; - -#endif /* _RT_THREAD_PER_CONNECTION_LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/Reactive_Logging_Server.cpp b/examples/C++NPv1/Reactive_Logging_Server.cpp deleted file mode 100644 index 39d2c6b51be..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Log_Msg.h" -#include "Reactive_Logging_Server.h" - -int main (int argc, char *argv[]) -{ - Reactive_Logging_Server server; - - if (server.run (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - return 0; -} diff --git a/examples/C++NPv1/Reactive_Logging_Server.dsp b/examples/C++NPv1/Reactive_Logging_Server.dsp deleted file mode 100644 index 3ea2ee54ff7..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server.dsp +++ /dev/null @@ -1,83 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Reactive_Logging_Server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Reactive_Logging_Server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Reactive_Logging_Server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Reactive_Logging_Server.mak" CFG="Reactive_Logging_Server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Reactive_Logging_Server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Reactive_Logging_Server___Win32_Debug"
-# PROP BASE Intermediate_Dir "Reactive_Logging_Server___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Reactive_Logging_Server/Debug"
-# PROP Intermediate_Dir "Reactive_Logging_Server/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Reactive_Logging_Server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactive_Logging_Server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Reactive_Logging_Server.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Reactive_Logging_Server.h b/examples/C++NPv1/Reactive_Logging_Server.h deleted file mode 100644 index 89a51473a78..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _REACTIVE_LOGGING_SERVER_H -#define _REACTIVE_LOGGING_SERVER_H - -#include "ace/INET_Addr.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Stream.h" -#include "ace/Log_Record.h" -#include "ace/Handle_Set.h" -#include "Iterative_Logging_Server.h" - -class Reactive_Logging_Server : public Iterative_Logging_Server -{ -protected: - // Keep track of the acceptor socket handle and all the - // connected stream socket handles. - ACE_Handle_Set master_handle_set_; - - // Keep track of handles marked as active by <select>. - ACE_Handle_Set active_handles_; - - virtual int open (u_short logger_port) { - Iterative_Logging_Server::open (logger_port); - master_handle_set_.set_bit (acceptor ().get_handle ()); - acceptor ().enable (ACE_NONBLOCK); - return 0; - } - - virtual int wait_for_multiple_events () { - active_handles_ = master_handle_set_; - int width = (int)active_handles_.max_set () + 1; - if (select (width, - active_handles_.fdset (), - 0, // no write_fds - 0, // no except_fds - 0) == -1) // no timeout - return -1; - active_handles_.sync - ((ACE_HANDLE) ((int) active_handles_.max_set () + 1)); - return 0; - } - - virtual int handle_connections () { - if (active_handles_.is_set (acceptor ().get_handle ())) { - while (acceptor ().accept (logging_handler ().peer ()) == 0) - master_handle_set_.set_bit - (logging_handler ().peer ().get_handle ()); - - // Remove acceptor handle from further consideration. - active_handles_.clr_bit (acceptor ().get_handle ()); - } - return 0; - } - - virtual int handle_data (ACE_SOCK_Stream *) { - ACE_Handle_Set_Iterator peer_iterator (active_handles_); - - for (ACE_HANDLE handle; - (handle = peer_iterator ()) != ACE_INVALID_HANDLE; - ) { - logging_handler ().peer ().set_handle (handle); - if (logging_handler ().log_record () == -1) { - // Handle connection shutdown or comm failure. - master_handle_set_.clr_bit (handle); - logging_handler ().close (); - } - } - return 0; - } - -}; - -#endif /* _REACTIVE_LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/Reactive_Logging_Server_Ex.cpp b/examples/C++NPv1/Reactive_Logging_Server_Ex.cpp deleted file mode 100644 index 8999d7a9651..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server_Ex.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Functor.h" -#include "ace/Log_Msg.h" - -#include "Reactive_Logging_Server_Ex.h" - -int main (int argc, char *argv[]) -{ - Reactive_Logging_Server_Ex server; - - if (server.run (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - return 0; -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Entry<ACE_HANDLE, ACE_FILE_IO *>; -template class ACE_Hash_Map_Manager<ACE_HANDLE, ACE_FILE_IO *, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Hash_Map_Entry<ACE_HANDLE, ACE_FILE_IO *> -#pragma instantiate ACE_Hash_Map_Manager<ACE_HANDLE, ACE_FILE_IO *, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_HANDLE, ACE_FILE_IO *, ACE_Hash<ACE_HANDLE>, ACE_Equal_To<ACE_HANDLE>, ACE_Null_Mutex> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/examples/C++NPv1/Reactive_Logging_Server_Ex.dsp b/examples/C++NPv1/Reactive_Logging_Server_Ex.dsp deleted file mode 100644 index 18b5f486e8f..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server_Ex.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Reactive_Logging_Server_Ex" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Reactive_Logging_Server_Ex - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Reactive_Logging_Server_Ex.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Reactive_Logging_Server_Ex.mak" CFG="Reactive_Logging_Server_Ex - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Reactive_Logging_Server_Ex - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Reactive_Logging_Server_Ex___Win32_Debug"
-# PROP BASE Intermediate_Dir "Reactive_Logging_Server_Ex___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Reactive_Logging_Server_Ex/Debug"
-# PROP Intermediate_Dir "Reactive_Logging_Server_Ex/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Reactive_Logging_Server_Ex - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactive_Logging_Server_Ex.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reactive_Logging_Server_Ex.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Reactive_Logging_Server_Ex.h b/examples/C++NPv1/Reactive_Logging_Server_Ex.h deleted file mode 100644 index 371190f8f75..00000000000 --- a/examples/C++NPv1/Reactive_Logging_Server_Ex.h +++ /dev/null @@ -1,94 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _REACTIVE_LOGGING_SERVER_EX_H -#define _REACTIVE_LOGGING_SERVER_EX_H - -#include "ace/ACE.h" -#include "ace/FILE_IO.h" -#include "ace/Handle_Set.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/INET_Addr.h" -#include "ace/Log_Record.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Stream.h" -#include "ace/Synch.h" -#include "Logging_Server.h" -#include "Logging_Handler.h" - -typedef ACE_Hash_Map_Manager<ACE_HANDLE, - ACE_FILE_IO *, - ACE_Null_Mutex> LOG_MAP; - -class Reactive_Logging_Server_Ex : public Logging_Server -{ -protected: - // Associate an active handle to an <ACE_FILE_IO> pointer. - LOG_MAP log_map_; - - // Keep track of acceptor socket and all the connected - // stream socket handles. - ACE_Handle_Set master_handle_set_; - - // Keep track of read handles marked as active by <select>. - ACE_Handle_Set active_read_handles_; - - virtual int open (u_short port) { - Logging_Server::open (port); - master_handle_set_.set_bit (acceptor ().get_handle ()); - acceptor ().enable (ACE_NONBLOCK); - return 0; - } - - virtual int wait_for_multiple_events () { - active_read_handles_ = master_handle_set_; - int width = (int) active_read_handles_.max_set () + 1; - - return ACE::select (width, active_read_handles_); - } - - virtual int handle_connections () { - ACE_SOCK_Stream logging_peer; - - while (acceptor ().accept (logging_peer) != -1) { - ACE_FILE_IO *log_file = new ACE_FILE_IO; - - // Use the client's hostname as the logfile name. - make_log_file (*log_file, &logging_peer); - - // Add the new <logging_peer>'s handle to the map and - // to the set of handles we <select> for input. - log_map_.bind (logging_peer.get_handle (), log_file); - master_handle_set_.set_bit (logging_peer.get_handle ()); - } - active_read_handles_.clr_bit (acceptor ().get_handle ()); - return 0; - } - - virtual int handle_data (ACE_SOCK_Stream *) { - ACE_Handle_Set_Iterator peer_iterator (active_read_handles_); - - for (ACE_HANDLE handle; - (handle = peer_iterator ()) != ACE_INVALID_HANDLE; - ) { - ACE_FILE_IO *log_file; - log_map_.find (handle, log_file); - Logging_Handler logging_handler (*log_file, handle); - - if (logging_handler.log_record () == -1) { - logging_handler.close (); - master_handle_set_.clr_bit (handle); - log_map_.unbind (handle); - log_file->close (); - delete log_file; - } - } - return 0; - } - -}; - -#endif /* _REACTIVE_LOGGING_SERVER_EX_H */ diff --git a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp b/examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp deleted file mode 100644 index ec4389110f0..00000000000 --- a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#include "ace/Auto_Ptr.h" -#include "ace/FILE_IO.h" -#include "ace/Log_Msg.h" -#include "ace/Signal.h" -#include "ace/Thread_Manager.h" - -#include "Thread_Per_Connection_Logging_Server.h" -#include "Logging_Handler.h" - -#include <errno.h> - -namespace { - extern "C" void sigterm_handler (int /* signum */) { /* No-op. */ } -} - - -ACE_THR_FUNC_RETURN Thread_Per_Connection_Logging_Server::run_svc (void *arg) -{ - auto_ptr<Thread_Args> thread_args (ACE_static_cast (Thread_Args *, arg)); - - thread_args->this_->handle_data (&thread_args->logging_peer_); - thread_args->logging_peer_.close (); - return 0; // Return value is ignored -} - - -int -Thread_Per_Connection_Logging_Server::handle_connections () -{ - auto_ptr<Thread_Args> thread_args (new Thread_Args (this)); - - if (acceptor ().accept (thread_args->logging_peer_) == -1) - return -1; - if (ACE_Thread_Manager::instance ()->spawn ( - // Pointer to function entry point. - Thread_Per_Connection_Logging_Server::run_svc, - // <run_svc> parameter. - ACE_static_cast (void *, thread_args.get ()), - THR_DETACHED | THR_SCOPE_SYSTEM) == -1) - return -1; - thread_args.release (); // Spawned thread now owns memory - return 0; -} - - -int -Thread_Per_Connection_Logging_Server::handle_data (ACE_SOCK_Stream *client) -{ - ACE_FILE_IO log_file; - // Client's hostname is logfile name. - make_log_file (log_file, client); - - // Place the connection into blocking mode since this - // thread isn't doing anything except handling this client. - client->disable (ACE_NONBLOCK); - - Logging_Handler logging_handler (log_file, *client); - - // Keep handling log records until client closes connection - // or this thread is asked to cancel itself. - ACE_Thread_Manager *mgr = ACE_Thread_Manager::instance (); - ACE_thread_t me = ACE_Thread::self (); - while (!mgr->testcancel (me) && - logging_handler.log_record () != -1) - continue; - - log_file.close (); - return 0; -} - - -int main (int argc, char *argv[]) -{ - // Register to receive the <SIGTERM> signal. - ACE_Sig_Action sa ((ACE_SignalHandler) sigterm_handler, - SIGTERM); - - Thread_Per_Connection_Logging_Server server; - - if (server.run (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), 1); - - // Cooperative thread cancellation and barrier synchronization. - ACE_Thread_Manager::instance ()->cancel_all (); - return ACE_Thread_Manager::instance ()->wait (); -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr<Thread_Per_Connection_Logging_Server::Thread_Args>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr<Thread_Per_Connection_Logging_Server::Thread_Args> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp b/examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp deleted file mode 100644 index 7e44bce30c4..00000000000 --- a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Thread_Per_Connection_Logging_Server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Thread_Per_Connection_Logging_Server - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Thread_Per_Connection_Logging_Server.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Thread_Per_Connection_Logging_Server.mak" CFG="Thread_Per_Connection_Logging_Server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Thread_Per_Connection_Logging_Server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Thread_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Intermediate_Dir "Thread_Per_Connection_Logging_Server___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Thread_Per_Connection_Logging_Server/Debug"
-# PROP Intermediate_Dir "Thread_Per_Connection_Logging_Server/Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../ace"
-# Begin Target
-
-# Name "Thread_Per_Connection_Logging_Server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Per_Connection_Logging_Server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Logging_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Thread_Per_Connection_Logging_Server.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.h b/examples/C++NPv1/Thread_Per_Connection_Logging_Server.h deleted file mode 100644 index edf3651cf46..00000000000 --- a/examples/C++NPv1/Thread_Per_Connection_Logging_Server.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -** $Id$ -** -** Copyright 2001 Addison Wesley. All Rights Reserved. -*/ - -#ifndef _THREAD_PER_CONNECTION_LOGGING_SERVER_H -#define _THREAD_PER_CONNECTION_LOGGING_SERVER_H - -#include "ace/SOCK_Stream.h" -#include "Logging_Server.h" - -class Thread_Per_Connection_Logging_Server : public Logging_Server -{ -private: - struct Thread_Args { - Thread_Args (Thread_Per_Connection_Logging_Server *lsp) : this_ (lsp) {} - - Thread_Per_Connection_Logging_Server *this_; - ACE_SOCK_Stream logging_peer_; - }; - - // Passed as a parameter to <ACE_Thread_Manager::spawn>. - static ACE_THR_FUNC_RETURN run_svc (void *arg); - -protected: - virtual int handle_connections (); - virtual int handle_data (ACE_SOCK_Stream * = 0); - -public: - // Template Method that runs logging server's event loop. Need to - // reimplement this here because the threads spawned from handle_connections - // call handle_data; therefore, this method must not. - virtual int run (int argc, char *argv[]) { - if (open (argc > 1 ? atoi (argv[1]) : 0) == -1) - return -1; - - for (;;) { - if (wait_for_multiple_events () == -1) - return -1; - if (handle_connections () == -1) - return -1; - } - - return 0; - } -}; - -#endif /* _THREAD_PER_CONNECTION_LOGGING_SERVER_H */ diff --git a/examples/C++NPv1/examples.dsw b/examples/C++NPv1/examples.dsw deleted file mode 100644 index 178eaca42bc..00000000000 --- a/examples/C++NPv1/examples.dsw +++ /dev/null @@ -1,101 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Iterative_Logging_Server"=".\Iterative_Logging_Server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Logging_Client"=".\Logging_Client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Process_Per_Connection_Logging_Server"=".\Process_Per_Connection_Logging_Server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "RT_Thread_Per_Connection_Logging_Server"=".\RT_Thread_Per_Connection_Logging_Server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Reactive_Logging_Server"=".\Reactive_Logging_Server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Reactive_Logging_Server_Ex"=".\Reactive_Logging_Server_Ex.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Thread_Per_Connection_Logging_Server"=".\Thread_Per_Connection_Logging_Server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
|