#include <ServantRetentionStrategyFactoryImpl.h>
Inheritance diagram for TAO::Portable_Server::ServantRetentionStrategyFactoryImpl:


Public Member Functions | |
| virtual ServantRetentionStrategy * | create (::PortableServer::ServantRetentionPolicyValue value) |
| Create a new servant retention strategy. | |
| virtual void | destroy (ServantRetentionStrategy *strategy) |
|
|
Create a new servant retention strategy.
Implements TAO::Portable_Server::ServantRetentionStrategyFactory. Definition at line 20 of file ServantRetentionStrategyFactoryImpl.cpp. References ACE_ERROR, ACE_TEXT(), TAO::Portable_Server::ServantRetentionStrategyFactory::create(), ACE_Dynamic_Service< TYPE >::instance(), LM_ERROR, and TAO_debug_level.
00022 {
00023 ServantRetentionStrategyFactory *strategy_factory = 0;
00024 const char *strategy_factory_name = 0;
00025
00026 switch (value)
00027 {
00028 case ::PortableServer::RETAIN :
00029 {
00030 strategy_factory_name = "ServantRetentionStrategyRetainFactory";
00031 break;
00032 }
00033 case ::PortableServer::NON_RETAIN :
00034 {
00035 strategy_factory_name = "ServantRetentionStrategyNonRetainFactory";
00036 break;
00037 }
00038 }
00039
00040 strategy_factory =
00041 ACE_Dynamic_Service<ServantRetentionStrategyFactory>::instance (strategy_factory_name);
00042
00043 if (strategy_factory == 0)
00044 {
00045 if (TAO_debug_level > 1)
00046 ACE_ERROR ((LM_ERROR,
00047 ACE_TEXT ("(%P|%t) ERROR, Unable to get %s\n"),
00048 strategy_factory_name));
00049
00050 return 0;
00051 }
00052
00053 return strategy_factory->create (value);
00054 }
|
|
|
Implements TAO::Portable_Server::ServantRetentionStrategyFactory. Definition at line 57 of file ServantRetentionStrategyFactoryImpl.cpp. References TAO::Portable_Server::ServantRetentionStrategyFactory::destroy(), ACE_Dynamic_Service< TYPE >::instance(), and TAO::Portable_Server::ServantRetentionStrategy::type().
00059 {
00060 const char *strategy_factory_name = 0;
00061
00062 switch (strategy->type ())
00063 {
00064 case ::PortableServer::RETAIN :
00065 {
00066 strategy_factory_name = "ServantRetentionStrategyRetainFactory";
00067 break;
00068 }
00069 case ::PortableServer::NON_RETAIN :
00070 {
00071 strategy_factory_name = "ServantRetentionStrategyNonRetainFactory";
00072 break;
00073 }
00074 }
00075
00076 ServantRetentionStrategyFactory *servantretention_strategy_factory =
00077 ACE_Dynamic_Service<ServantRetentionStrategyFactory>::instance (strategy_factory_name);
00078
00079 if (servantretention_strategy_factory != 0)
00080 {
00081 servantretention_strategy_factory->destroy (strategy);
00082 }
00083 }
|
1.3.6