1 #ifndef ACE_DYNAMIC_SERVICE_CPP
2 #define ACE_DYNAMIC_SERVICE_CPP
4 #include "ace/Dynamic_Service.h"
6 #if !defined (ACE_LACKS_PRAGMA_ONCE)
8 #endif /* ACE_LACKS_PRAGMA_ONCE */
10 #include "ace/Service_Object.h"
12 #if !defined (__ACE_INLINE__)
13 #include "ace/Dynamic_Service.inl"
14 #endif /* __ACE_INLINE__ */
16 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
19 template <class TYPE
> TYPE
*
20 ACE_Dynamic_Service
<TYPE
>::instance (const ACE_TCHAR
*name
)
22 ACE_Service_Object
* svc_obj
=
23 static_cast<ACE_Service_Object
*>
24 (ACE_Dynamic_Service_Base::instance (name
,false));
25 return dynamic_cast<TYPE
*> (svc_obj
);
28 template <class TYPE
> TYPE
*
29 ACE_Dynamic_Service
<TYPE
>::instance (const ACE_TCHAR
*name
,
32 ACE_Service_Object
* svc_obj
=
33 static_cast<ACE_Service_Object
*>
34 (ACE_Dynamic_Service_Base::instance (name
, no_global
));
35 return dynamic_cast<TYPE
*> (svc_obj
);
38 template <class TYPE
> TYPE
*
39 ACE_Dynamic_Service
<TYPE
>::instance (const ACE_Service_Gestalt
* conf
,
40 const ACE_TCHAR
*name
)
42 ACE_Service_Object
* svc_obj
=
43 static_cast<ACE_Service_Object
*>
44 (ACE_Dynamic_Service_Base::instance (conf
, name
, false));
45 return dynamic_cast<TYPE
*> (svc_obj
);
48 template <class TYPE
> TYPE
*
49 ACE_Dynamic_Service
<TYPE
>::instance (const ACE_Service_Gestalt
* conf
,
50 const ACE_TCHAR
*name
,
53 ACE_Service_Object
* svc_obj
=
54 static_cast<ACE_Service_Object
*>
55 (ACE_Dynamic_Service_Base::instance (conf
, name
, no_global
));
56 return dynamic_cast<TYPE
*> (svc_obj
);
59 ACE_END_VERSIONED_NAMESPACE_DECL
61 #endif /* ACE_DYNAMIC_SERVICE_CPP */