#include <RequestProcessingStrategyFactoryImpl.h>
Inheritance diagram for TAO::Portable_Server::RequestProcessingStrategyFactoryImpl:
Public Member Functions | |
virtual RequestProcessingStrategy * | create (::PortableServer::RequestProcessingPolicyValue value,::PortableServer::ServantRetentionPolicyValue srvalue) |
Create a new servant retention strategy. | |
virtual void | destroy (RequestProcessingStrategy *strategy) |
Definition at line 32 of file RequestProcessingStrategyFactoryImpl.h.
RequestProcessingStrategy * TAO::Portable_Server::RequestProcessingStrategyFactoryImpl::create | ( | ::PortableServer::RequestProcessingPolicyValue | value, | |
::PortableServer::ServantRetentionPolicyValue | srvalue | |||
) | [virtual] |
Create a new servant retention strategy.
Implements TAO::Portable_Server::RequestProcessingStrategyFactory.
Definition at line 22 of file RequestProcessingStrategyFactoryImpl.cpp.
References ACE_ERROR, ACE_TEXT(), TAO::Portable_Server::RequestProcessingStrategyFactory::create(), ACE_Dynamic_Service< TYPE >::instance(), and LM_ERROR.
00025 { 00026 RequestProcessingStrategy* strategy = 0; 00027 RequestProcessingStrategyFactory *strategy_factory = 0; 00028 00029 switch (value) 00030 { 00031 case ::PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY : 00032 { 00033 strategy_factory = 00034 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyAOMOnlyFactory"); 00035 00036 break; 00037 } 00038 case ::PortableServer::USE_DEFAULT_SERVANT : 00039 { 00040 strategy_factory = 00041 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyDefaultServantFactory"); 00042 00043 break; 00044 } 00045 case ::PortableServer::USE_SERVANT_MANAGER : 00046 { 00047 #if (TAO_HAS_MINIMUM_POA == 0) 00048 switch (srvalue) 00049 { 00050 case ::PortableServer::RETAIN : 00051 { 00052 strategy_factory = 00053 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantActivatorFactory"); 00054 00055 break; 00056 } 00057 case ::PortableServer::NON_RETAIN : 00058 { 00059 strategy_factory = 00060 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantLocatorFactory"); 00061 00062 break; 00063 } 00064 } 00065 #endif /* TAO_HAS_MINIMUM_POA == 0 */ 00066 break; 00067 } 00068 } 00069 00070 if (strategy_factory != 0) 00071 strategy = strategy_factory->create (value, srvalue); 00072 else 00073 ACE_ERROR ((LM_ERROR, 00074 ACE_TEXT ("(%P|%t) %p\n"), 00075 ACE_TEXT ("ERROR, Unable to get ") 00076 ACE_TEXT ("RequestProcessingStrategyFactory"))); 00077 00078 return strategy; 00079 }
void TAO::Portable_Server::RequestProcessingStrategyFactoryImpl::destroy | ( | RequestProcessingStrategy * | strategy | ) | [virtual] |
Implements TAO::Portable_Server::RequestProcessingStrategyFactory.
Definition at line 82 of file RequestProcessingStrategyFactoryImpl.cpp.
References TAO::Portable_Server::RequestProcessingStrategyFactory::destroy(), ACE_Dynamic_Service< TYPE >::instance(), TAO::Portable_Server::RequestProcessingStrategy::sr_type(), and TAO::Portable_Server::RequestProcessingStrategy::type().
00085 { 00086 RequestProcessingStrategyFactory *strategy_factory = 0; 00087 00088 switch (strategy->type ()) 00089 { 00090 case ::PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY : 00091 { 00092 strategy_factory = 00093 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyAOMOnlyFactory"); 00094 00095 break; 00096 } 00097 case ::PortableServer::USE_DEFAULT_SERVANT : 00098 { 00099 strategy_factory = 00100 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyDefaultServantFactory"); 00101 00102 break; 00103 } 00104 case ::PortableServer::USE_SERVANT_MANAGER : 00105 { 00106 #if (TAO_HAS_MINIMUM_POA == 0) 00107 switch (strategy->sr_type ()) 00108 { 00109 case ::PortableServer::RETAIN : 00110 { 00111 strategy_factory = 00112 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantActivatorFactory"); 00113 00114 break; 00115 } 00116 case ::PortableServer::NON_RETAIN : 00117 { 00118 strategy_factory = 00119 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantLocatorFactory"); 00120 break; 00121 } 00122 } 00123 #endif /* TAO_HAS_MINIMUM_POA == 0 */ 00124 break; 00125 } 00126 } 00127 00128 if (strategy_factory != 0) 00129 { 00130 strategy_factory->destroy (strategy); 00131 } 00132 }