diff options
Diffstat (limited to 'ace/Service_Types.h')
-rw-r--r-- | ace/Service_Types.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/ace/Service_Types.h b/ace/Service_Types.h index fccf76b5f02..eed14e8ed2f 100644 --- a/ace/Service_Types.h +++ b/ace/Service_Types.h @@ -43,7 +43,8 @@ public: ACE_Service_Type_Impl (void *object, const ACE_TCHAR *s_name, u_int flags = 0, - ACE_Service_Object_Exterminator gobbler = 0); + ACE_Service_Object_Exterminator gobbler = 0, + int stype = ACE_Service_Type::INVALID_TYPE); virtual ~ACE_Service_Type_Impl (void); // = Pure virtual interface (must be defined by the subclass). @@ -51,6 +52,7 @@ public: virtual int resume (void) const = 0; virtual int init (int argc, ACE_TCHAR *argv[]) const = 0; virtual int fini (void) const; + virtual int fini_delete (void) const; virtual int info (ACE_TCHAR **str, size_t len) const = 0; /// The pointer to the service. @@ -65,6 +67,10 @@ public: /// Dump the state of an object. void dump (void) const; + /// Getter and setter for service_type_. + int service_type(void) const; + void service_type(int stype); + /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; @@ -81,6 +87,11 @@ protected: /// Flags that control serivce behavior (particularly deletion). u_int flags_; + + /// Stores the enum that represents the concrete type of this ACE_Service_Type_Impl. + /// Possible values are ACE_Service_Type::SERVICE_OBJECT, ACE_Service_Type::MODULE, and + /// ACE_Service_Type::STREAM. + int service_type_; }; /** @@ -96,7 +107,8 @@ public: ACE_Service_Object_Type (void *so, const ACE_TCHAR *name, u_int flags = 0, - ACE_Service_Object_Exterminator gobbler = 0); + ACE_Service_Object_Exterminator gobbler = 0, + int stype = ACE_Service_Type::SERVICE_OBJECT); ~ACE_Service_Object_Type (void); @@ -124,7 +136,8 @@ public: // = Initialization method. ACE_Module_Type (void *m, // Really an ACE_Module *. const ACE_TCHAR *identifier, - u_int flags = 0); + u_int flags = 0, + int stype = ACE_Service_Type::MODULE); ~ACE_Module_Type (void); @@ -164,7 +177,9 @@ public: // = Initialization method. ACE_Stream_Type (void *s, // Really an ACE_Stream *. const ACE_TCHAR *identifier, - u_int flags = 0); + u_int flags = 0, + int stype = ACE_Service_Type::STREAM); + ~ACE_Stream_Type (void); |