summaryrefslogtreecommitdiff
path: root/ace/Service_Config.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-11-01 22:17:39 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-11-01 22:17:39 +0000
commit53284e215e3d3351a7d7e9c4b68f14b427fb4377 (patch)
tree97236ece363cff48fd287c780db4290da39b02cb /ace/Service_Config.h
parent7b7c52ad2abd228138ba1a948d5e28bf6dc3b880 (diff)
downloadATCD-53284e215e3d3351a7d7e9c4b68f14b427fb4377.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.h489
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__)