diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-11-01 22:17:39 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-11-01 22:17:39 +0000 |
commit | 4cdff4b3e2dbc73b00e671ef638d71d6d854e0ac (patch) | |
tree | 97236ece363cff48fd287c780db4290da39b02cb /ace/Service_Config.h | |
parent | 7b6368ec78831d127f38eb7b630c21f98faf6a83 (diff) | |
download | ATCD-4cdff4b3e2dbc73b00e671ef638d71d6d854e0ac.tar.gz |
ChangeLogTag:Wed Nov 1 14:11:48 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'ace/Service_Config.h')
-rw-r--r-- | ace/Service_Config.h | 489 |
1 files changed, 268 insertions, 221 deletions
diff --git a/ace/Service_Config.h b/ace/Service_Config.h index 614d7fec58e..a4cbf4445ed 100644 --- a/ace/Service_Config.h +++ b/ace/Service_Config.h @@ -1,18 +1,15 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Service_Config.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ + +//============================================================================= +/** + * @file Service_Config.h + * + * $Id$ + * + * @author Doug Schmidt + */ +//============================================================================= + #ifndef ACE_SERVICE_CONFIG_H #define ACE_SERVICE_CONFIG_H @@ -40,36 +37,39 @@ extern "C" typedef ACE_Service_Object *(*ACE_SERVICE_ALLOCATOR) (ACE_Service_Object_Exterminator *); } +/** + * @class ACE_Static_Svc_Descriptor + * + * @brief Holds the information necessary to describe a statically linked + * Svc. + */ class ACE_Static_Svc_Descriptor { - // = TITLE - // Holds the information necessary to describe a statically linked - // Svc. public: + /// Name of the service. const ACE_TCHAR *name_; - // Name of the service. + /// Type of service. int type_; - // Type of service. + /// Factory function that allocates the service. ACE_SERVICE_ALLOCATOR alloc_; - // Factory function that allocates the service. + /// Bitmask flags indicating how the framework should delete memory. u_int flags_; - // Bitmask flags indicating how the framework should delete memory. + /// Flag indicating whether the service starts out active. int active_; - // Flag indicating whether the service starts out active. + /// Dump the state of an object. void dump (void) const; - // Dump the state of an object. + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. public: + /// Compare two service descriptors for equality. int operator== (ACE_Static_Svc_Descriptor &) const; - // Compare two service descriptors for equality. }; // Maintain a set of the statically linked service descriptors. @@ -86,23 +86,24 @@ typedef ACE_Unbounded_Queue_Iterator<ACE_TString> ACE_SVC_QUEUE_ITERATOR; #define ACE_Component_Config ACE_Service_Config +/** + * @class ACE_Service_Config + * + * @brief Supplies common server operations for dynamic and static + * configuration of services. + * + * The <ACE_Service_Config> uses the Monostate pattern. Therefore, + * you can only have one of these instantiated per-process. + * NOTE: the signal_handler_ static member is allocated by the + * <ACE_Object_Manager>. The <ACE_Service_Config> constructor + * uses signal_handler_. Therefore, if the program has any + * static <ACE_Service_Config> objects, there might be + * initialization order problems. They can be minimized, but + * not eliminated, by _not_ #defining + * <ACE_HAS_NONSTATIC_OBJECT_MANAGER>. + */ class ACE_Export ACE_Service_Config { - // = TITLE - // Supplies common server operations for dynamic and static - // configuration of services. - // - // = DESCRIPTION - // The <ACE_Service_Config> uses the Monostate pattern. Therefore, - // you can only have one of these instantiated per-process. - // - // NOTE: the signal_handler_ static member is allocated by the - // <ACE_Object_Manager>. The <ACE_Service_Config> constructor - // uses signal_handler_. Therefore, if the program has any - // static <ACE_Service_Config> objects, there might be - // initialization order problems. They can be minimized, but - // not eliminated, by _not_ #defining - // <ACE_HAS_NONSTATIC_OBJECT_MANAGER>. public: enum { @@ -111,145 +112,165 @@ public: // = Initialization and termination methods. + /// Initialize the Service Repository. ACE_Service_Config (int ignore_static_svcs = 1, size_t size = ACE_Service_Config::MAX_SERVICES, int signum = SIGHUP); - // Initialize the Service Repository. + /** + * Performs an open without parsing command-line arguments. The + * <logger_key> indicates where to write the logging output, which + * is typically either a STREAM pipe or a socket address. + */ ACE_Service_Config (const ACE_TCHAR program_name[], const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY); - // Performs an open without parsing command-line arguments. The - // <logger_key> indicates where to write the logging output, which - // is typically either a STREAM pipe or a socket address. + /** + * Performs an open without parsing command-line arguments. The + * <logger_key> indicates where to write the logging output, which + * is typically either a STREAM pipe or a socket address. If + * <ignore_default_svc_conf_file> is non-0 then the "svc.conf" file + * will be ignored. If <ignore_debug_flag> is non-0 then the + * application is responsible for setting the + * <ACE_Log_Msg::priority_mask> appropriately. Returns number of + * errors that occurred on failure and 0 otherwise. + */ static int open_i (const ACE_TCHAR program_name[], const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY, int ignore_default_svc_conf_file = 0, int ignore_debug_flag = 0); - // Performs an open without parsing command-line arguments. The - // <logger_key> indicates where to write the logging output, which - // is typically either a STREAM pipe or a socket address. If - // <ignore_default_svc_conf_file> is non-0 then the "svc.conf" file - // will be ignored. If <ignore_debug_flag> is non-0 then the - // application is responsible for setting the - // <ACE_Log_Msg::priority_mask> appropriately. Returns number of - // errors that occurred on failure and 0 otherwise. + /** + * Performs an open without parsing command-line arguments. The + * <logger_key> indicates where to write the logging output, which + * is typically either a STREAM pipe or a socket address. If + * <ignore_static_svcs> is 1 then static services are not loaded, + * otherwise, they are loaded. If <ignore_default_svc_conf_file> is + * non-0 then the <svc.conf> configuration file will be ignored. + * Returns zero upon success, -1 if the file is not found or cannot + * be opened (errno is set accordingly), otherwise returns the + * number of errors encountered loading the services in the + * specified svc.conf configuration file. If <ignore_debug_flag> is + * non-0 then the application is responsible for setting the + * <ACE_Log_Msg::priority_mask> appropriately. + */ static int open (const ACE_TCHAR program_name[], const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY, int ignore_static_svcs = 1, int ignore_default_svc_conf_file = 0, int ignore_debug_flag = 0); - // Performs an open without parsing command-line arguments. The - // <logger_key> indicates where to write the logging output, which - // is typically either a STREAM pipe or a socket address. If - // <ignore_static_svcs> is 1 then static services are not loaded, - // otherwise, they are loaded. If <ignore_default_svc_conf_file> is - // non-0 then the <svc.conf> configuration file will be ignored. - // Returns zero upon success, -1 if the file is not found or cannot - // be opened (errno is set accordingly), otherwise returns the - // number of errors encountered loading the services in the - // specified svc.conf configuration file. If <ignore_debug_flag> is - // non-0 then the application is responsible for setting the - // <ACE_Log_Msg::priority_mask> appropriately. + /** + * This is the primary entry point into the ACE_Service_Config (the + * constructor just handles simple initializations). It parses + * arguments passed in from <argc> and <argv> parameters. The + * arguments that are valid in a call to this method include: + * + * - '-b' Option to indicate that we should be a daemon + * - '-d' Turn on debugging mode + * - '-f' Option to read in the list of svc.conf file names + * - '-k' Option to read a wide string where in the logger output can + * be written + * - '-y' Option required to use statically linked services. + * A static service repostory will be constructed if the flag + * is used. Use this flag to override the default + * <ignore_static_svcs> flag at run-time. + * - '-n' Option to avoid using any statically linked services, which + * eliminates the need to construct the static service repository. + * - '-S' Option to read in the list of services on the command-line + * Please observe the difference between options '-f' that looks + * for a list of files and here a list of services. + * + * Returns number of errors that occurred on failure and 0 + * otherwise. + * + * The <logger_key> indicates where to write the logging output, + * which is typically either a STREAM pipe or a socket address. If + * <ignore_static_svcs> is 1 then static services are not loaded, + * otherwise, they are loaded. If <ignore_default_svc_conf_file> is + * non-0 then the <svc.conf> configuration file will be ignored. + * Returns zero upon success, -1 if the file is not found or cannot + * be opened (errno is set accordingly), otherwise returns the + * number of errors encountered loading the services in the + * specified svc.conf configuration file. If <ignore_debug_flag> is + * non-0 then the application is responsible for setting the + * <ACE_Log_Msg::priority_mask> appropriately. + */ static int open (int argc, ACE_TCHAR *argv[], const ACE_TCHAR *logger_key = ACE_DEFAULT_LOGGER_KEY, int ignore_static_svcs = 1, int ignore_default_svc_conf = 0, int ignore_debug_flag = 0); - // This is the primary entry point into the ACE_Service_Config (the - // constructor just handles simple initializations). It parses - // arguments passed in from <argc> and <argv> parameters. The - // arguments that are valid in a call to this method include: - // - // '-b' - Option to indicate that we should be a daemon - // '-d' - Turn on debugging mode - // '-f' - Option to read in the list of svc.conf file names - // '-k' - Option to read a wide string where in the logger output can - // be written - // '-y' - Option required to use statically linked services. - // A static service repostory will be constructed if the flag - // is used. Use this flag to override the default - // <ignore_static_svcs> flag at run-time. - // '-n' - Option to avoid using any statically linked services, which - // eliminates the need to construct the static service repository. - // '-S' - Option to read in the list of services on the command-line - // Please observe the difference between options '-f' that looks - // for a list of files and here a list of services. - // - // Returns number of errors that occurred on failure and 0 - // otherwise. - // - // The <logger_key> indicates where to write the logging output, - // which is typically either a STREAM pipe or a socket address. If - // <ignore_static_svcs> is 1 then static services are not loaded, - // otherwise, they are loaded. If <ignore_default_svc_conf_file> is - // non-0 then the <svc.conf> configuration file will be ignored. - // Returns zero upon success, -1 if the file is not found or cannot - // be opened (errno is set accordingly), otherwise returns the - // number of errors encountered loading the services in the - // specified svc.conf configuration file. If <ignore_debug_flag> is - // non-0 then the application is responsible for setting the - // <ACE_Log_Msg::priority_mask> appropriately. + /// Perform user-specified close activities and remove dynamic + /// memory. virtual ~ACE_Service_Config (void); - // Perform user-specified close activities and remove dynamic - // memory. + /// Tidy up and perform last rites when ACE_Service_Config is shut + /// down. This method calls <close_svcs>. Returns 0. static int close (void); - // Tidy up and perform last rites when ACE_Service_Config is shut - // down. This method calls <close_svcs>. Returns 0. + /// Perform user-specified close hooks and possibly delete all of the + /// configured services in the <Service_Repository>. static int fini_svcs (void); - // Perform user-specified close hooks and possibly delete all of the - // configured services in the <Service_Repository>. + /** + * Perform user-specified close hooks on all of the configured + * services in the <Service_Repository>, then delete the + * <Service_Repository> itself. Returns 0. + */ 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. Returns 0. + /** + * Delete the dynamically allocated Singletons (i.e., the <Reactor>, + * <Proactor>, <ReactorEx>, and <Thread_Manager>. + * Returns 0. + */ static int close_singletons (void); - // Delete the dynamically allocated Singletons (i.e., the <Reactor>, - // <Proactor>, <ReactorEx>, and <Thread_Manager>. - // Returns 0. // = Reactor event loop management methods. + /** + * Run the event loop until the <ACE_Reactor::handle_events> method + * returns -1 or the <end_reactor_event_loop> method is invoked. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Reactor::run_event_loop> instead. + */ 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. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Reactor::run_event_loop> instead. + /** + * 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. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * <Use ACE_Reactor::run_event_loop> instead. + */ 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. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // <Use ACE_Reactor::run_event_loop> instead. + /** + * Instruct the <ACE_Service_Config> to terminate its event loop and + * notifies the <ACE_Reactor::instance> so that it can wake up + * and close down gracefully. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Reactor::end_event_loop> instead. + */ static int end_reactor_event_loop (void); - // Instruct the <ACE_Service_Config> to terminate its event loop and - // notifies the <ACE_Reactor::instance> so that it can wake up - // and close down gracefully. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Reactor::end_event_loop> instead. + /** + * Report if the Reactor's event loop is finished. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Reactor::event_loop_done> instead. + */ static int reactor_event_loop_done (void); - // Report if the Reactor's event loop is finished. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Reactor::event_loop_done> instead. + /// True if reconfiguration occurred. static int reconfig_occurred (void); - // True if reconfiguration occurred. + /// Indicate that reconfiguration occurred. static void reconfig_occurred (int); - // Indicate that reconfiguration occurred. + /// Perform the reconfiguration process. static void reconfigure (void); - // Perform the reconfiguration process. // = The following methods are static in order to enforce Singleton // semantics for the Reactor, Service_Repository, Thread_Manager, @@ -258,80 +279,98 @@ public: // = Accessors and mutators for process-wide Singletons. + /// Returns a pointer to the list of statically linked services. static ACE_STATIC_SVCS *static_svcs (void); - // Returns a pointer to the list of statically linked services. + /** + * Get pointer to a process-wide <ACE_Reactor>. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Reactor::instance> instead. + */ static ACE_Reactor *reactor (void); - // Get pointer to a process-wide <ACE_Reactor>. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Reactor::instance> instead. + /** + * Set pointer to a process-wide <ACE_Reactor> and return existing + * pointer. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Reactor::instance> instead. + */ static ACE_Reactor *reactor (ACE_Reactor *); - // Set pointer to a process-wide <ACE_Reactor> and return existing - // pointer. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Reactor::instance> instead. + /** + * Get pointer to a process-wide <ACE_Service_Repository>. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Service_Repository::instance> instead. + */ static ACE_Service_Repository *svc_rep (void); - // Get pointer to a process-wide <ACE_Service_Repository>. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Service_Repository::instance> instead. + /** + * Set pointer to a process-wide <ACE_Service_Repository> and return + * existing pointer. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Service_Repository::instance> instead. + */ static ACE_Service_Repository *svc_rep (ACE_Service_Repository *); - // Set pointer to a process-wide <ACE_Service_Repository> and return - // existing pointer. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Service_Repository::instance> instead. + /** + * Get pointer to a process-wide <ACE_Thread_Manager>. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Thread_Manager::instance> instead. + */ static ACE_Thread_Manager *thr_mgr (void); - // Get pointer to a process-wide <ACE_Thread_Manager>. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Thread_Manager::instance> instead. #if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) + /** + * Set pointer to a process-wide <ACE_Thread_Manager> and return + * existing pointer. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use ACE_Thread_Manager::instance() instead. + */ static ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *); - // Set pointer to a process-wide <ACE_Thread_Manager> and return - // existing pointer. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use ACE_Thread_Manager::instance() instead. #endif /* ! defined (ACE_THREAD_MANAGER_LACKS_STATICS) */ + /** + * Get pointer to a default <ACE_Allocator>. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Allocator::instance> instead. + */ static ACE_Allocator *alloc (void); - // Get pointer to a default <ACE_Allocator>. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Allocator::instance> instead. + /** + * Set pointer to a process-wide <ACE_Allocator> and return existing + * pointer. + * DO NOT USE THIS METHOD. It may be unsupported in future releases. + * Use <ACE_Allocator::instance> instead. + */ static ACE_Allocator *alloc (ACE_Allocator *); - // Set pointer to a process-wide <ACE_Allocator> and return existing - // pointer. - // DO NOT USE THIS METHOD. It may be unsupported in future releases. - // Use <ACE_Allocator::instance> instead. // = Utility methods. + /// Dynamically link the shared object file and retrieve a pointer to + /// the designated shared object in this file. static int initialize (const ACE_Service_Type *, ACE_TCHAR parameters[]); - // Dynamically link the shared object file and retrieve a pointer to - // the designated shared object in this file. + /// Initialize and activate a statically <svc_name> service. static int initialize (const ACE_TCHAR svc_name[], ACE_TCHAR parameters[]); - // Initialize and activate a statically <svc_name> service. + /// Resume a <svc_name> that was previously suspended or has not yet + /// been resumed (e.g., a static service). static int resume (const ACE_TCHAR svc_name[]); - // Resume a <svc_name> that was previously suspended or has not yet - // been resumed (e.g., a static service). + /** + * 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 suspend (const ACE_TCHAR 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... + /// Totally remove <svc_name> from the daemon by removing it + /// from the ACE_Reactor, and unlinking it if necessary. static int remove (const ACE_TCHAR svc_name[]); - // Totally remove <svc_name> from the daemon by removing it - // from the ACE_Reactor, and unlinking it if necessary. #if defined (ACE_HAS_WINCE) // We must provide these function to bridge the <Svc_Conf> parser @@ -343,100 +382,108 @@ public: static int remove (const char svc_name[]); #endif /* ACE_HAS_WINCE */ + /// Dump the state of an object. void dump (void) const; - // Dump the state of an object. + /// Set the signal_handler;for internal use by ACE_Object_Manager only. static ACE_INLINE void signal_handler (ACE_Sig_Adapter *); - // Set the signal_handler;for internal use by ACE_Object_Manager only. + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. + /// Process one service configuration <directive>, which is passed as + /// a string. Returns the number of errors that occurred. static int process_directive (const ACE_TCHAR directive[]); - // Process one service configuration <directive>, which is passed as - // a string. Returns the number of errors that occurred. + /** + * Process (or re-process) service configuration requests that are + * provided in the svc.conf file(s). Returns the number of errors + * that occurred. + */ static int process_directives (void); - // Process (or re-process) service configuration requests that are - // provided in the svc.conf file(s). Returns the number of errors - // that occurred. + /// Handles signals to trigger reconfigurations. static void handle_signal (int sig, siginfo_t *, ucontext_t *); - // Handles signals to trigger reconfigurations. + /** + * Handle the command-line options intended for the + * <ACE_Service_Config>. Note that <argv[0]> is assumed to be the + * program name. + * The arguments that are valid in a call to this method are + * - '-b' Option to indicate that we should be a daemon + * - '-d' Turn on debugging mode + * - '-f' Option to read in the list of svc.conf file names + * - '-k' Option to read a wide string where in the logger output can + * be written + * - '-y' Turn on the flag for a repository of statically + * linked services + * - '-n' Need not have a repository of statically linked services + * - '-S' Option to read in the list of services on the command-line + * Please observe the difference between options '-f' that looks + * for a list of files and here a list of services. + */ static int parse_args (int, ACE_TCHAR *argv[]); - // Handle the command-line options intended for the - // <ACE_Service_Config>. Note that <argv[0]> is assumed to be the - // program name. - // The arguments that are valid in a call to this method are - // '-b' - Option to indicate that we should be a daemon - // '-d' - Turn on debugging mode - // '-f' - Option to read in the list of svc.conf file names - // '-k' - Option to read a wide string where in the logger output can - // be written - // '-y' - Turn on the flag for a repository of statically - // linked services - // '-n' - Need not have a repository of statically linked services - // '-S' - Option to read in the list of services on the command-line - // Please observe the difference between options '-f' that looks - // for a list of files and here a list of services. protected: + /// Process service configuration requests that were provided on the + /// command-line. Returns the number of errors that occurred. static int process_commandline_directives (void); - // Process service configuration requests that were provided on the - // command-line. Returns the number of errors that occurred. + /** + * This is the implementation function that <process_directives> and + * <process_directive> both call. Returns the number of errors that + * occurred. + */ static int process_directives_i (void); - // This is the implementation function that <process_directives> and - // <process_directive> both call. Returns the number of errors that - // occurred. + /// Become a daemon. static int start_daemon (void); - // Become a daemon. + /// Add the default statically-linked services to the + /// <ACE_Service_Repository>. static int load_static_svcs (void); - // Add the default statically-linked services to the - // <ACE_Service_Repository>. private: + /// Indicates where to write the logging output. This is typically + /// either a STREAM pipe or a socket address. static const ACE_TCHAR *logger_key_; - // Indicates where to write the logging output. This is typically - // either a STREAM pipe or a socket address. + /// Singleton repository of statically linked services. static ACE_STATIC_SVCS *static_svcs_; - // Singleton repository of statically linked services. + /// Queue of services specified on the command-line. static ACE_SVC_QUEUE *svc_queue_; - // Queue of services specified on the command-line. + /// Queue of svc.conf files specified on the command-line. + /// @@ This should probably be made to handle unicode filenames... static ACE_SVC_QUEUE *svc_conf_file_queue_; - // Queue of svc.conf files specified on the command-line. - // @@ This should probably be made to handle unicode filenames... + /// Initialize the <svc_conf_file_queue_> if necessary. static int init_svc_conf_file_queue (void); - // Initialize the <svc_conf_file_queue_> if necessary. + /// True if reconfiguration occurred. static sig_atomic_t reconfig_occurred_; - // True if reconfiguration occurred. // = Set by command-line options. + /// Shall we become a daemon process? static char be_a_daemon_; - // Shall we become a daemon process? + /// Should we avoid loading the static services? static char no_static_svcs_; - // Should we avoid loading the static services? + /// Number of the signal used to trigger reconfiguration. static int signum_; - // Number of the signal used to trigger reconfiguration. + /// Handles the reconfiguration signals. static ACE_Sig_Adapter *signal_handler_; - // Handles the reconfiguration signals. + /** + * Keep track of whether the <ACE_Service_Config> is already + * initialized. If so, we can't allow <yyparse> to be called since + * it's not reentrant. This variable is incremented by the + * <ACE_Service_Config::open> method and decremented by the + * <ACE_Service_Config::close> method. + */ static int is_initialized_; - // Keep track of whether the <ACE_Service_Config> is already - // initialized. If so, we can't allow <yyparse> to be called since - // it's not reentrant. This variable is incremented by the - // <ACE_Service_Config::open> method and decremented by the - // <ACE_Service_Config::close> method. }; #if defined (__ACE_INLINE__) |