summaryrefslogtreecommitdiff
path: root/ace/Service_Manager.h
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>2001-03-10 14:42:57 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>2001-03-10 14:42:57 +0000
commitc190cd2fd657198eb250182b92e497e1e7bb1e9f (patch)
treeb15effdd5212101fd54306824274fca39a6705bc /ace/Service_Manager.h
parent4faeed4b42e5e6925b6e03df0a0508a0c6142856 (diff)
downloadATCD-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.h30
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_;