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