#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) |
Definition at line 32 of file ServantRetentionStrategyFactoryImpl.h.
ServantRetentionStrategy * TAO::Portable_Server::ServantRetentionStrategyFactoryImpl::create | ( | ::PortableServer::ServantRetentionPolicyValue | value | ) | [virtual] |
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 }
void TAO::Portable_Server::ServantRetentionStrategyFactoryImpl::destroy | ( | ServantRetentionStrategy * | strategy | ) | [virtual] |
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 }