/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // ace // // = FILENAME // NT_Naming_Service.h // // // = DESCRIPTION // Run the TAO Naming Service as a Windows NT Service. // // = AUTHORS // John Tucker and // Mike Vitalo // // ============================================================================ #ifndef TAO_NT_NAMING_SERVICE_H #define TAO_NT_NAMING_SERVICE_H #include /**/ "ace/OS.h" #include /**/ "ace/NT_Service.h" #include /**/ "ace/Singleton.h" #include /**/ "ace/Synch.h" class TAO_NT_Naming_Service : public ACE_NT_Service { // = TITLE // Run the TAO Naming Service as a Windows NT Service. public: typedef ACE_Recursive_Thread_Mutex MUTEX; // = Initialization and termination hooks. TAO_NT_Naming_Service (void); virtual ~TAO_NT_Naming_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 /* TAO_NT_NAMING_SERVER_H */