2 #include "tao/orbconf.h"
4 #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
6 #include "tao/PortableServer/RequestProcessingStrategyServantLocatorFI.h"
7 #include "tao/PortableServer/RequestProcessingStrategy.h"
8 #include "tao/PortableServer/RequestProcessingStrategyServantLocator.h"
9 #include "ace/Dynamic_Service.h"
10 #include "ace/Log_Msg.h"
12 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
16 namespace Portable_Server
18 RequestProcessingStrategy
*
19 RequestProcessingStrategyServantLocatorFactoryImpl::create (
20 ::PortableServer::RequestProcessingPolicyValue value
,
21 ::PortableServer::ServantRetentionPolicyValue srvalue
)
23 RequestProcessingStrategy
* strategy
= 0;
27 case ::PortableServer::USE_SERVANT_MANAGER
:
31 case ::PortableServer::RETAIN
:
33 TAOLIB_ERROR ((LM_ERROR
, "Incorrect type in RequestProcessingStrategyServantLocatorFactoryImpl"));
36 case ::PortableServer::NON_RETAIN
:
38 ACE_NEW_RETURN (strategy
, RequestProcessingStrategyServantLocator
, 0);
46 TAOLIB_ERROR ((LM_ERROR
, "Incorrect type in RequestProcessingStrategyServantLocatorFactoryImpl"));
55 RequestProcessingStrategyServantLocatorFactoryImpl::destroy (
56 RequestProcessingStrategy
*strategy
)
58 strategy
->strategy_cleanup ();
65 ACE_STATIC_SVC_DEFINE (
66 RequestProcessingStrategyServantLocatorFactoryImpl
,
67 ACE_TEXT ("RequestProcessingStrategyServantLocatorFactory"),
69 &ACE_SVC_NAME (RequestProcessingStrategyServantLocatorFactoryImpl
),
70 ACE_Service_Type::DELETE_THIS
| ACE_Service_Type::DELETE_OBJ
,
73 ACE_FACTORY_NAMESPACE_DEFINE (
75 RequestProcessingStrategyServantLocatorFactoryImpl
,
76 TAO::Portable_Server::RequestProcessingStrategyServantLocatorFactoryImpl
)
78 TAO_END_VERSIONED_NAMESPACE_DECL
80 #endif /* TAO_HAS_MINIMUM_POA == 0 */