diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-05-21 06:40:20 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-05-21 06:40:20 +0000 |
commit | 2e55e5de064f8f830f9500b3b763f4d835108eb5 (patch) | |
tree | 7fd742e4c8d992d2c1045cb34f62139883bfab9e /netsvcs/lib/Server_Logging_Handler.h | |
parent | a9ed61b14817cf00e94082614b98422836664aa3 (diff) | |
download | ATCD-2e55e5de064f8f830f9500b3b763f4d835108eb5.tar.gz |
*** empty log message ***
Diffstat (limited to 'netsvcs/lib/Server_Logging_Handler.h')
-rw-r--r-- | netsvcs/lib/Server_Logging_Handler.h | 176 |
1 files changed, 39 insertions, 137 deletions
diff --git a/netsvcs/lib/Server_Logging_Handler.h b/netsvcs/lib/Server_Logging_Handler.h index 4f61190cdf8..91a473caf40 100644 --- a/netsvcs/lib/Server_Logging_Handler.h +++ b/netsvcs/lib/Server_Logging_Handler.h @@ -1,156 +1,58 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Server_Logging_Handler.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - #if !defined (ACE_SERVER_LOGGING_HANDLER_H) #define ACE_SERVER_LOGGING_HANDLER_H -#include "ace/Synch.h" -#include "ace/TLI_Acceptor.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/Acceptor.h" - -template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_1> -class ACE_Server_Logging_Handler : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_SYNCH_2> -{ - // = TITLE - // Product object created by an <ACE_Server_Logging_Acceptor>. An - // <ACE_Server_Logging_Handler> receives, frames, and processes logging - // records. - // - // = DESCRIPTION - // Defines the classes that perform server logging daemon - // functionality. -public: - ACE_Server_Logging_Handler (ACE_Thread_Manager * = 0); - // Constructor. - - virtual int open (void * = 0); - // Hook called by <Server_Logging_Acceptor> when connection is - // established. - - virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE); - // Process remote logging records. - -protected: - int handle_logging_record (void); - // Receive the logging record from a client. - -#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) - static COUNTER request_count_; - // Count the number of logging records that arrive. -#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */ - - char host_name_[MAXHOSTNAMELEN + 1]; - // Name of the host we are connected to. - - ACE_SYNCH_MUTEX_T *lock_; - // Reference to the lock used to serialize output. -}; - -#if !defined (ACE_HAS_TLI) -#define LOGGING_PEER_ACCEPTOR ACE_SOCK_ACCEPTOR -#define LOGGING_PEER_STREAM ACE_SOCK_STREAM -#else /* use sockets */ -#define LOGGING_PEER_ACCEPTOR ACE_TLI_ACCEPTOR -#define LOGGING_PEER_STREAM ACE_TLI_STREAM -#endif /* ACE_HAS_TLI */ - -typedef ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH> - SERVER_LOGGING_HANDLER; +#include "Log_Message_Receiver.h" +#include "Server_Logging_Handler_T.h" -class ACE_Server_Logging_Acceptor : public ACE_Strategy_Acceptor<SERVER_LOGGING_HANDLER, LOGGING_PEER_ACCEPTOR> - // = TITLE - // This class implements the ACE single-threaded logging service. - // - // = DESCRIPTION - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. +// Type based log message receivers. +typedef Static_Log_Message_Receiver<ACE_NULL_SYNCH> Null_Synch_Static_Receiver; +typedef Static_Log_Message_Receiver<ACE_LOGGER_SYNCH> Synch_Static_Receiver; -protected: - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. +typedef ACE_Server_Logging_Handler<Null_Synch_Static_Receiver> Null_Synch_Logging_Handler_Static_Receiver; -private: - ACE_Schedule_All_Reactive_Strategy<SERVER_LOGGING_HANDLER> scheduling_strategy_; - // The scheduling strategy is designed for Reactive services. -}; +typedef ACE_Server_Logging_Handler<Synch_Static_Receiver> Synch_Logging_Handler_Static_Receiver; +typedef ACE_Thr_Server_Logging_Handler<Synch_Static_Receiver> Synch_Thr_Logging_Handler_Static_Receiver; -#if !defined (ACE_HAS_THREADS) -typedef u_long COUNTER; -#define ACE_LOGGER_SYNCH ACE_NULL_SYNCH -#else -typedef ACE_Atomic_Op <ACE_Thread_Mutex, u_long> COUNTER; -#define ACE_LOGGER_SYNCH ACE_MT_SYNCH -#endif /* ACE_HAS_THREADS */ +typedef ACE_Server_Logging_Acceptor_T<Null_Synch_Logging_Handler_Static_Receiver, + Null_Synch_Static_Receiver, + ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> > + Null_Synch_Logging_Handler_Static_Receiver_Acceptor; -class ACE_Svc_Export ACE_Thr_Server_Logging_Handler : public ACE_Server_Logging_Handler<LOGGING_PEER_STREAM, COUNTER, ACE_LOGGER_SYNCH> - // = TITLE - // Product object created by a <ACE_Thr_Server_Logging_Acceptor>. An - // <ACE_Thr_Server_Logging_Handler> receives, frames, and processes - // logging records. - // - // = DESCRIPTION - // Each client is handled in its own separate thread. -{ -public: - ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager * = 0, - ACE_SYNCH_MUTEX * = 0); +typedef ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Static_Receiver, + Synch_Static_Receiver, + ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> > + Synch_Logging_Handler_Static_Receiver_Acceptor; - virtual int open (void * = 0); - // Override activation definition in the ACE_Svc_Handler class (will - // spawn a new thread if we've got threads). +typedef ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Static_Receiver, + Synch_Static_Receiver, + ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> > + Synch_Thr_Logging_Handler_Static_Receiver_Acceptor; - virtual int svc (void); - // Process remote logging records. -}; +// Instance based log message receivers +typedef Log_Message_Receiver<ACE_LOGGER_SYNCH> Synch_Receiver; -class ACE_Thr_Server_Logging_Acceptor : public ACE_Strategy_Acceptor<ACE_Thr_Server_Logging_Handler, LOGGING_PEER_ACCEPTOR> - // = TITLE - // This class implements the ACE multi-threaded logging service. - // - // = DESCRIPTION - // This class contains the service-specific methods that can't - // easily be factored into the <ACE_Strategy_Acceptor>. -{ -public: - virtual int init (int argc, char *argv[]); - // Dynamic linking hook. +typedef ACE_Server_Logging_Handler<Synch_Receiver> Synch_Logging_Handler_Receiver; +typedef ACE_Thr_Server_Logging_Handler<Synch_Receiver> Synch_Thr_Logging_Handler_Receiver; + +typedef ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Receiver, + Synch_Receiver, + ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> > + Synch_Logging_Handler_Receiver_Acceptor; - int parse_args (int argc, char *argv[]); - // Parse svc.conf arguments. +typedef ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Receiver, + Synch_Receiver, + ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> > + Synch_Thr_Logging_Handler_Receiver_Acceptor; - virtual int make_svc_handler (ACE_Thr_Server_Logging_Handler *&); - // Factory that creates a new <SERVER_LOGGING_HANDLER>. We need to - // specialize this since the <lock_> held by this Acceptor must be - // passed into the <SERVER_LOGGING_HANDLER>. +// Define external acceptors +typedef Null_Synch_Logging_Handler_Static_Receiver_Acceptor ACE_Server_Logging_Acceptor; +typedef Synch_Thr_Logging_Handler_Static_Receiver_Acceptor ACE_Thr_Server_Logging_Acceptor; -private: - ACE_SYNCH_MUTEX lock_; - // Lock used to serialize output by the various - // <ACE_Server_Logging_Handler>'s. +//typedef Synch_Logging_Handler_Receiver_Acceptor ACE_Server_Logging_Acceptor; +//typedef Synch_Thr_Logging_Handler_Receiver_Acceptor ACE_Thr_Server_Logging_Acceptor; - ACE_Schedule_All_Threaded_Strategy<ACE_Thr_Server_Logging_Handler> scheduling_strategy_; - // The scheduling strategy is designed for multi-threaded services. -}; ACE_SVC_FACTORY_DECLARE (ACE_Server_Logging_Acceptor) ACE_SVC_FACTORY_DECLARE (ACE_Thr_Server_Logging_Acceptor) -#endif /* ACE_SERVER_LOGGING_HANDLER_H */ +#endif |