diff options
Diffstat (limited to 'ACE/examples/Service_Configurator/Misc/Timer_Service.h')
-rw-r--r-- | ACE/examples/Service_Configurator/Misc/Timer_Service.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/ACE/examples/Service_Configurator/Misc/Timer_Service.h b/ACE/examples/Service_Configurator/Misc/Timer_Service.h new file mode 100644 index 00000000000..01aa77b7317 --- /dev/null +++ b/ACE/examples/Service_Configurator/Misc/Timer_Service.h @@ -0,0 +1,71 @@ +// -*- C++ -*- +// +// $Id$ + +#include "ace/svc_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/Service_Config.h" +#include "ace/Reactor.h" +#include "ace/Service_Object.h" + + +class ACE_Svc_Export Timer_Service_1 : public ACE_Service_Object +{ + // = TITLE + // Demonstrates a simple timer service that can be configured + // statically. +public: + Timer_Service_1 (void); + // Default constructor. + + virtual int init (int argc, ACE_TCHAR *argv[]); + // Initialization hook. + + virtual int handle_timeout (const ACE_Time_Value &, + const void *); + // Timeout hook. + + virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask); + // Close hook. + +protected: + ACE_TCHAR name_[BUFSIZ]; + // Keep track of which service this is! + +private: + enum + { + TIMEOUT = 4, // Wait 4 seconds between timeouts + MAX_TIMEOUTS = 10 // Don't timeout for more than 10 times. + }; + + int max_timeouts_; + // Maximum number of timeouts before shutting down the test. + + int cur_timeouts_; + // Current number of timeouts. +}; + +class ACE_Svc_Export Timer_Service_2 : public Timer_Service_1 +{ +public: + Timer_Service_2 (void); + // Default constructor. +}; + +class ACE_Svc_Export Timer_Service_3 : public Timer_Service_1 +{ +public: + Timer_Service_3 (void); + // Default constructor. +}; + +// Declare both static and dynamic services. +ACE_STATIC_SVC_DECLARE_EXPORT (ACE_Svc, Timer_Service_1) +ACE_SVC_FACTORY_DECLARE (Timer_Service_1) +ACE_SVC_FACTORY_DECLARE (Timer_Service_2) +ACE_SVC_FACTORY_DECLARE (Timer_Service_3) |