NAME

ACE_Service_Manager - Provide a standard ACE service for managing all the services configured in an ACE_Service_Repository.

SYNOPSIS

#include <ace/Service_Manager.h>

class ACE_Service_Manager : public ACE_Service_Object { public: ACE_Service_Manager (void); ~ACE_Service_Manager (void); protected: virtual int reconfigure_services (void); virtual int list_services (void); virtual int init (int argc, ASYS_TCHAR *argv[]); virtual int info (ASYS_TCHAR **info_string, size_t length) const; virtual int fini (void); virtual int suspend (void); virtual int resume (void); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; private: int open (const ACE_INET_Addr &sia); virtual ACE_HANDLE get_handle (void) const; virtual int handle_input (ACE_HANDLE fd); virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask); virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); ACE_SOCK_Stream client_stream_; ACE_SOCK_Acceptor acceptor_; int debug_; int signum_; static u_short DEFAULT_PORT_; };

DESCRIPTION

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.

Initialization and termination hooks.

ACE_Service_Manager (void);

~ACE_Service_Manager (void);

Perform the various meta-services.

virtual int reconfigure_services (void);

virtual int list_services (void);

Dynamic linking hooks.

virtual int init (int argc, ASYS_TCHAR *argv[]);

virtual int info (ASYS_TCHAR **info_string, size_t length) const;

virtual int fini (void);

Scheduling hooks.

virtual int suspend (void);

virtual int resume (void);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

Demultiplexing hooks.

virtual ACE_HANDLE get_handle (void) const;

virtual int handle_input (ACE_HANDLE fd);

virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask);

virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);

ACE_SOCK_Stream client_stream_;

ACE_SOCK_Acceptor acceptor_;

int debug_;

int signum_;

static u_short DEFAULT_PORT_;

AUTHOR

Doug Schmidt

LIBRARY

ace