/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // ace // // = FILENAME // NT_Notify_Service.h // // // = DESCRIPTION // Run the TAO Notify Service as a Windows NT Service. // // = AUTHORS // John Tucker , // Mike Vitalo , // David Robison // // ============================================================================ #ifndef TAO_NT_NOTIFY_SERVICE_H #define TAO_NT_NOTIFY_SERVICE_H #include /**/ "ace/OS.h" #if defined (ACE_WIN32) #include /**/ "ace/NT_Service.h" #include /**/ "ace/Singleton.h" #include /**/ "ace/Synch.h" #include /**/ "tao/orbconf.h" class TAO_NT_Notify_Service : public ACE_NT_Service { // = TITLE // Run the TAO Notify Service as a Windows NT Service. public: typedef TAO_SYNCH_RECURSIVE_MUTEX MUTEX; // = Initialization and termination hooks. TAO_NT_Notify_Service (void); virtual ~TAO_NT_Notify_Service (void); virtual void handle_control (DWORD control_code); // We override because it handles stop requests // privately. virtual int handle_exception (ACE_HANDLE h); // We override so a 'stop' control code can pop // the reactor off of its wait. virtual int svc (void); // This is a virtual method inherited from ACE_NT_Service. virtual int init (int argc, ACE_TCHAR *argv[]); // Initialize the objects argc_ and argv_ attributes values. private: // = Keep track of the "command-line" arguments. int argc_; int argc_save_; // Argument count. char **argv_; char **argv_save_; // Argument list. friend class ACE_Singleton; }; typedef ACE_Singleton SERVICE; #endif /* ACE_WIN32 */ #endif /* TAO_NT_NOTIFY_SERVER_H */