diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-03-10 14:42:57 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-03-10 14:42:57 +0000 |
commit | c190cd2fd657198eb250182b92e497e1e7bb1e9f (patch) | |
tree | b15effdd5212101fd54306824274fca39a6705bc /ace/Service_Manager.h | |
parent | 4faeed4b42e5e6925b6e03df0a0508a0c6142856 (diff) | |
download | ATCD-c190cd2fd657198eb250182b92e497e1e7bb1e9f.tar.gz |
ChangeLogTag:Sat Mar 10 07:05:16 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace/Service_Manager.h')
-rw-r--r-- | ace/Service_Manager.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/ace/Service_Manager.h b/ace/Service_Manager.h index 7c0c5cbd10d..0ffb8aa9a9b 100644 --- a/ace/Service_Manager.h +++ b/ace/Service_Manager.h @@ -1,17 +1,15 @@ /* -*- C++ -*- */ - //============================================================================= /** * @file Service_Manager.h * * $Id$ * - * @author Doug Schmidt + * @author Doug Schmidt <schmidt@cs.wustl.edu> */ //============================================================================= - #ifndef ACE_SERVICE_MANAGER_H #define ACE_SERVICE_MANAGER_H #include "ace/pre.h" @@ -32,12 +30,22 @@ * @brief Provide a standard ACE service for managing all the services * configured in an <ACE_Service_Repository>. * - * This implementation is very simple. It just handles each - * client request one at a time. Each request is associated - * with a new connection, which is closed when the request is - * processed. In addition, you must be using the singleton - * <ACE_Reactor::instance> in order to trigger reconfigurations. - * This scheme can certainly be improved. + * This implementation is simple and just handles each client + * request one at a time. There are currently 3 types of requests: + * + List services: If the string "help" is sent, return a list of all + * the services supported by the Service Configurator. + * + Reconfigure: If the string "reconfigure" is sent trigger a + * reconfiguration, which will re-read the local <svc.conf> file. + * + Process directive: If neither "help" nor "reconfigure" is sent, + * simply treat the incoming string as a process directive and pass + * it along to <ACE_Service_Config::process_directive>. This allows + * remote configuration via command-line instructions like + * $echo suspend Remote_Brdcast | telnet hostname 3911 + * + * Each request is associated with a new connection, which is closed + * when the request is processed. In addition, you must be using the + * singleton <ACE_Reactor::instance> in order to trigger + * reconfigurations. */ class ACE_Export ACE_Service_Manager : public ACE_Service_Object { @@ -51,6 +59,7 @@ public: protected: // = Perform the various meta-services. + /// Trigger a remote reconfiguration of the Service Configurator. virtual int reconfigure_services (void); @@ -82,6 +91,9 @@ private: virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask); virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); + /// Handle one request. + virtual void process_request (ACE_TCHAR *request); + /// Connection to the client (we only support one client connection /// at a time). ACE_SOCK_Stream client_stream_; |