#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) |
|
||||||||||||
|
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 }
|
|
|
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 }
|
1.3.6