diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
commit | d9661aebab28abc0ec4fb1e716170d347d56c168 (patch) | |
tree | ecb671ab4b8e299bf5cbb8b2dfeed8a49b65fc06 /ace/Service_Config.h | |
parent | ea0d28240863caf437a18071bfd03e7b146c5ade (diff) | |
download | ATCD-unlabeled-4.3.2.tar.gz |
This commit was manufactured by cvs2svn to create branchunlabeled-4.3.2
'unlabeled-4.3.2'.
Diffstat (limited to 'ace/Service_Config.h')
-rw-r--r-- | ace/Service_Config.h | 357 |
1 files changed, 0 insertions, 357 deletions
diff --git a/ace/Service_Config.h b/ace/Service_Config.h deleted file mode 100644 index ae7819f18bc..00000000000 --- a/ace/Service_Config.h +++ /dev/null @@ -1,357 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Service_Config.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_SERVICE_CONFIG_H) -#define ACE_SERVICE_CONFIG_H - -#include "ace/Service_Object.h" -#include "ace/Thread_Manager.h" -#include "ace/Signal.h" -#include "ace/Set.h" - -// Forward decl. -class ACE_Service_Repository; -class ACE_Service_Record; -class ACE_Allocator; -class ACE_Reactor; -class ACE_Proactor; -class ACE_ReactorEx; - -extern "C" -{ -typedef ACE_Service_Object *(*ACE_SERVICE_ALLOCATOR)(void); -} - -struct ACE_Static_Svc_Descriptor -{ - char *name_; - // Name of the service. - - int type_; - // Type of service. - - ACE_SERVICE_ALLOCATOR alloc_; - // Factory function that allocates the service. - - u_int flags_; - // Bitmask flags indicating how the framework should delete memory. - - int active_; - // Flag indicating whether the service starts out active. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -public: - int operator== (ACE_Static_Svc_Descriptor &) const; - // Compare two service descriptors for equality. -}; - -// = Maintain a set of the statically linked service descriptor. - -typedef ACE_Unbounded_Set<ACE_Static_Svc_Descriptor *> ACE_STATIC_SVCS; -typedef ACE_Unbounded_Set_Iterator<ACE_Static_Svc_Descriptor *> ACE_STATIC_SVCS_ITERATOR; - -class ACE_Export ACE_Service_Config - // = TITLE - // Supplies common server operations for dynamic and static - // configuration of services. -{ -public: - enum {MAX_SERVICES = ACE_DEFAULT_REACTOR_SIZE}; - - // = Initialization and termination methods. - - ACE_Service_Config (int ignore_defaults = 0, - size_t size = ACE_Service_Config::MAX_SERVICES, - int signum = SIGHUP); - // Initialize the Service Repository. - - ACE_Service_Config (const char program_name[]); - // Performs an open without parsing command-line arguments. - - static int open (const char program_name[]); - // Performs an open without parsing command-line arguments. - - static int open (int argc, char *argv[]); - // This is the primary entry point into the ACE_Service_Config (the - // constructor just handles simple initializations). It parses - // arguments passed in from the command-line. - - virtual ~ACE_Service_Config (void); - // Perform user-specified close activities and remove dynamic - // memory. - - static int close (void); - // Tidy up and perform last rites when ACE_Service_Config is shut - // down. This method calls <close_svcs> and <close_singletons>. - - static int close_svcs (void); - // Perform user-specified close hooks on all of the configured - // services in the <Service_Repository>, then delete the - // <Service_Repository> itself. - - static int close_singletons (void); - // Delete the dynamically allocated Singletons (i.e., the <Reactor>, - // <Proactor>, <ReactorEx>, <Thread_Manager>, and <Allocator>). - - // = Reactor event loop management methods. - static int run_reactor_event_loop (void); - // Run the event loop until the <ACE_Reactor::handle_events> method - // returns -1 or the <end_reactor_event_loop> method is invoked. - - static int run_reactor_event_loop (ACE_Time_Value &tv); - // Run the event loop until the <ACE_Reactor::handle_events> method - // returns -1, the <end_reactor_event_loop> method is invoked, or the - // <ACE_Time_Value> expires. - - static int end_reactor_event_loop (void); - // Instruct the <ACE_Service_Config> to terminate its event loop and - // notifies the <ACE_Service_Config::reactor> so that it can wake up - // and close down gracefully. - - static sig_atomic_t reactor_event_loop_done (void); - // Report if the Reactor's event loop is finished. - - // = Proactor event loop management methods. - static int run_proactor_event_loop (void); - // Run the event loop until the <ACE_Proactor::handle_events> - // method returns -1 or the <end_proactor_event_loop> method - // is invoked. - - static int run_proactor_event_loop (ACE_Time_Value &tv); - // Run the event loop until the <ACE_Proactor::handle_events> - // method returns -1, the <end_proactor_event_loop> method - // is invoked, or the <ACE_Time_Value> expires. - - static int end_proactor_event_loop (void); - // Instruct the <ACE_Service_Config> to terminate its event loop. - - static sig_atomic_t proactor_event_loop_done (void); - // Report if the proactor event loop is finished. - - // = ReactorEx event loop management methods. - static int run_reactorEx_event_loop (void); - // Run the event loop until the <ACE_ReactorEx::handle_events> - // method returns -1 or the <end_reactorEx_event_loop> method - // is invoked. - - static int run_reactorEx_event_loop (ACE_Time_Value &tv); - // Run the event loop until the <ACE_ReactorEx::handle_events> - // method returns -1, the <end_reactorEx_event_loop> method - // is invoked, or the <ACE_Time_Value> expires. - - static int end_reactorEx_event_loop (void); - // Instruct the <ACE_Service_Config> to terminate its event loop. - - static sig_atomic_t reactorEx_event_loop_done (void); - // Report if the ReactorEx event loop is finished. - - static sig_atomic_t reconfig_occurred (void); - // True if reconfiguration occurred. - - static void reconfig_occurred (sig_atomic_t); - // Indicate that reconfiguration occurred. - - // = The following methods are static in order to enforce Singleton - // semantics for the Reactor, Service_Repository, Thread_Manager, - // Acceptor/Connector Strategy factory, Proactor, and ReactorEx. - // Other portions of the system may need to access them at some - // point or another... - - // = Accessors and mutators for process-wide Singletons. - - static ACE_STATIC_SVCS *static_svcs (void); - // Returns a pointer to the list of statically linked services. - - static ACE_Reactor *reactor (void); - // Get pointer to a process-wide <ACE_Reactor>. - - static ACE_Reactor *reactor (ACE_Reactor *); - // Set pointer to a process-wide <ACE_Reactor> and return existing - // pointer. - - static ACE_Proactor *proactor (size_t threads = 0); - // Get pointer to a process-wide <ACE_Proactor>. <threads> should - // be part of another method. It's only here because I'm just a - // grad student and not in charge. No, I'm not bitter about this. - - static ACE_Proactor *proactor (ACE_Proactor *); - // Set pointer to a process-wide <ACE_Proactor> and return existing - // pointer. - - static ACE_ReactorEx *reactorEx (void); - // Get pointer to a process-wide <ACE_ReactorEx>. - - static ACE_ReactorEx *reactorEx (ACE_ReactorEx *); - // Set pointer to a process-wide <ACE_ReactorEx> and return existing - // pointer. - - static ACE_Service_Repository *svc_rep (void); - // Get pointer to a process-wide <ACE_Service_Repository>. - - static ACE_Service_Repository *svc_rep (ACE_Service_Repository *); - // Set pointer to a process-wide <ACE_Service_Repository> and return - // existing pointer. - - static ACE_Thread_Manager *thr_mgr (void); - // Get pointer to a process-wide <ACE_Thread_Manager>. - - static ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *); - // Set pointer to a process-wide <ACE_Thread_Manager> and return - // existing pointer. - - static ACE_Allocator *alloc (void); - // Get pointer to a default <ACE_Allocator>. - - static ACE_Allocator *alloc (ACE_Allocator *); - // Set pointer to a process-wide <ACE_Allocator> and return existing - // pointer. - - // = Member functions used by various other parts - // of the Service Configurator class category. - static int initialize (const ACE_Service_Record *, char parameters[]); - // Dynamically link the shared object file and retrieve - // a pointer to the designated shared object in this file. - - static int initialize (const char svc_name[], char parameters[]); - // Initialize and activate a statically <svc_name> service. - - static int resume (const char svc_name[]); - // Resume a <svc_name> that was previously suspended or has not yet - // been resumed (e.g., a static service). - - static int suspend (const char svc_name[]); - // Suspend <svc_name>. Note that this will not unlink the service - // from the daemon if it was dynamically linked, it will mark it - // as being suspended in the Service Repository and call the - // suspend() member function on the appropriate ACE_Service_Object. - // A service can be resumed later on by calling the RESUME() - // member function... - - static int remove (const char svc_name[]); - // Totally remove <svc_name> from the daemon by removing it - // from the ACE_Reactor, and unlinking it if necessary. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - static int process_directives (void); - // Process service configuration requests as indicated - // in the <service_config_file>. - - static void parse_args (int, char *[]); - // Handle the command-line options intended for the <ACE_Service_Config>. - - static void reconfigure (void); - // Perform the reconfiguration process. - - static int start_daemon (void); - // Become a daemon. - - static int load_defaults (void); - // Add the default statically-linked services to the <ACE_Service_Repository>. - - static void handle_signal (int sig, siginfo_t *, ucontext_t *); - // Handles signals to trigger reconfigurations. - -private: - static ACE_Service_Repository *svc_rep_; - // Pointer to a process-wide <ACE_Service_Repository>. - - static int delete_svc_rep_; - // Must delete the <svc_rep_> if non-0. - - static ACE_Thread_Manager *thr_mgr_; - // Pointer to a process-wide <ACE_Thread_Manager>. - - static int delete_thr_mgr_; - // Must delete the <thr_mgr_> if non-0. - - static ACE_Allocator *allocator_; - // Pointer to a process-wide <ACE_Allocator> instance. - - static int delete_allocator_; - // Must delete the <allocator_> if non-0. - - static ACE_Proactor *proactor_; - // Pointer to a process-wide <ACE_Reactor>. - - static int delete_proactor_; - // Must delete the <proactor_> if non-0. - - static ACE_ReactorEx *reactorEx_; - // Pointer to a process-wide <ACE_Reactor>. - - static int delete_reactorEx_; - // Must delete the <proactor_> if non-0. - - static ACE_Reactor *reactor_; - // Pointer to a process-wide <ACE_Reactor>. - - static int delete_reactor_; - // Must delete the <reactor_> if non-0. - - static const char *service_config_file_; - // Name of service configuration file. - - static LPCTSTR logger_key_; - // Where to write the logging output. - - //static ACE_Static_Svc_Descriptor service_list_[]; - // List of statically linked services. - - static sig_atomic_t end_reactor_event_loop_; - // Terminate the event loop. - - static sig_atomic_t end_proactor_event_loop_; - // Terminate the proactor event loop. - - static sig_atomic_t end_reactorEx_event_loop_; - // Terminate the proactor event loop. - - static sig_atomic_t reconfig_occurred_; - // True if reconfiguration occurred. - - // = Set by command-line options. - static char debug_; - static char be_a_daemon_; - static char no_defaults_; - - static int signum_; - // Number of the signal used to trigger reconfiguration. - - static ACE_Sig_Adapter signal_handler_; - // Handles the reconfiguration signals. -}; - -#if defined (__ACE_INLINE__) -#include "ace/Service_Config.i" -#endif /* __ACE_INLINE__ */ - -// These must go here to avoid circular includes... -#include "ace/Reactor.h" -#include "ace/Proactor.h" -#include "ace/ReactorEx.h" -#include "ace/Svc_Conf_Tokens.h" -#endif /* ACE_SERVICE_CONFIG_H */ |