#include <IdUniquenessStrategyFactoryImpl.h>
Inheritance diagram for TAO::Portable_Server::IdUniquenessStrategyFactoryImpl:
Public Member Functions | |
virtual IdUniquenessStrategy * | create (::PortableServer::IdUniquenessPolicyValue value) |
Create a new servant retention strategy. | |
virtual void | destroy (IdUniquenessStrategy *strategy) |
Cleanup the given strategy instance. |
Definition at line 32 of file IdUniquenessStrategyFactoryImpl.h.
IdUniquenessStrategy * TAO::Portable_Server::IdUniquenessStrategyFactoryImpl::create | ( | ::PortableServer::IdUniquenessPolicyValue | value | ) | [virtual] |
Create a new servant retention strategy.
Implements TAO::Portable_Server::IdUniquenessStrategyFactory.
Definition at line 18 of file IdUniquenessStrategyFactoryImpl.cpp.
References ACE_ERROR, ACE_TEXT(), TAO::Portable_Server::IdUniquenessStrategyFactory::create(), ACE_Dynamic_Service< TYPE >::instance(), and LM_ERROR.
00020 { 00021 IdUniquenessStrategy* strategy = 0; 00022 switch (value) 00023 { 00024 case ::PortableServer::MULTIPLE_ID : 00025 { 00026 strategy = 00027 ACE_Dynamic_Service<IdUniquenessStrategy>::instance ("IdUniquenessStrategyMultiple"); 00028 00029 if (strategy == 0) 00030 ACE_ERROR ((LM_ERROR, 00031 ACE_TEXT ("(%P|%t) %p\n"), 00032 ACE_TEXT ("ERROR, Unable to get ") 00033 ACE_TEXT ("IdUniquenessStrategyMultiple"))); 00034 00035 break; 00036 } 00037 case ::PortableServer::UNIQUE_ID : 00038 { 00039 IdUniquenessStrategyFactory *strategy_factory = 00040 ACE_Dynamic_Service<IdUniquenessStrategyFactory>::instance ("IdUniquenessStrategyUniqueFactory"); 00041 00042 if (strategy_factory != 0) 00043 strategy = strategy_factory->create (value); 00044 else 00045 ACE_ERROR ((LM_ERROR, 00046 ACE_TEXT ("(%P|%t) %p\n"), 00047 ACE_TEXT ("ERROR, Unable to get ") 00048 ACE_TEXT ("IdUniquenessStrategyUniqueFactory"))); 00049 00050 break; 00051 } 00052 } 00053 00054 return strategy; 00055 }
void TAO::Portable_Server::IdUniquenessStrategyFactoryImpl::destroy | ( | IdUniquenessStrategy * | strategy | ) | [virtual] |
Cleanup the given strategy instance.
Implements TAO::Portable_Server::IdUniquenessStrategyFactory.
Definition at line 58 of file IdUniquenessStrategyFactoryImpl.cpp.
References TAO::Portable_Server::IdUniquenessStrategyFactory::destroy(), ACE_Dynamic_Service< TYPE >::instance(), and TAO::Portable_Server::IdUniquenessStrategy::type().
00061 { 00062 switch (strategy->type ()) 00063 { 00064 case ::PortableServer::MULTIPLE_ID : 00065 { 00066 // Noop 00067 break; 00068 } 00069 case ::PortableServer::UNIQUE_ID : 00070 { 00071 IdUniquenessStrategyFactory *strategy_factory = 00072 ACE_Dynamic_Service<IdUniquenessStrategyFactory>::instance ("IdUniquenessStrategyUniqueFactory"); 00073 00074 if (strategy_factory != 0) 00075 { 00076 strategy_factory->destroy (strategy); 00077 } 00078 break; 00079 } 00080 } 00081 }