00001
00002
00003 #ifndef ACE_DYNAMIC_SERVICE_CPP
00004 #define ACE_DYNAMIC_SERVICE_CPP
00005
00006 #include "ace/Dynamic_Service.h"
00007
00008 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00009 # pragma once
00010 #endif
00011
00012 #include "ace/Service_Object.h"
00013
00014 #if !defined (__ACE_INLINE__)
00015 #include "ace/Dynamic_Service.inl"
00016 #endif
00017
00018 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00019
00020
00021 template <class TYPE> TYPE *
00022 ACE_Dynamic_Service<TYPE>::instance (const ACE_TCHAR *name)
00023 {
00024 ACE_Service_Object * svc_obj =
00025 static_cast<ACE_Service_Object *>
00026 (ACE_Dynamic_Service_Base::instance (name,false));
00027 return dynamic_cast<TYPE *> (svc_obj);
00028 }
00029
00030 template <class TYPE> TYPE *
00031 ACE_Dynamic_Service<TYPE>::instance (const ACE_TCHAR *name,
00032 bool no_global)
00033 {
00034 ACE_Service_Object * svc_obj =
00035 static_cast<ACE_Service_Object *>
00036 (ACE_Dynamic_Service_Base::instance (name, no_global));
00037 return dynamic_cast<TYPE *> (svc_obj);
00038 }
00039
00040 template <class TYPE> TYPE *
00041 ACE_Dynamic_Service<TYPE>::instance (const ACE_Service_Gestalt* conf,
00042 const ACE_TCHAR *name)
00043 {
00044 ACE_Service_Object * svc_obj =
00045 static_cast<ACE_Service_Object *>
00046 (ACE_Dynamic_Service_Base::instance (conf, name, false));
00047 return dynamic_cast<TYPE *> (svc_obj);
00048 }
00049
00050 template <class TYPE> TYPE *
00051 ACE_Dynamic_Service<TYPE>::instance (const ACE_Service_Gestalt* conf,
00052 const ACE_TCHAR *name,
00053 bool no_global)
00054 {
00055 ACE_Service_Object * svc_obj =
00056 static_cast<ACE_Service_Object *>
00057 (ACE_Dynamic_Service_Base::instance (conf, name, no_global));
00058 return dynamic_cast<TYPE *> (svc_obj);
00059 }
00060
00061 ACE_END_VERSIONED_NAMESPACE_DECL
00062
00063 #endif