TAO::Portable_Server::IdUniquenessStrategyFactoryImpl Class Reference

#include <IdUniquenessStrategyFactoryImpl.h>

Inheritance diagram for TAO::Portable_Server::IdUniquenessStrategyFactoryImpl:

Inheritance graph
[legend]
Collaboration diagram for TAO::Portable_Server::IdUniquenessStrategyFactoryImpl:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual IdUniquenessStrategycreate (::PortableServer::IdUniquenessPolicyValue value)
 Create a new servant retention strategy.
virtual void destroy (IdUniquenessStrategy *strategy)
 Cleanup the given strategy instance.

Detailed Description

Definition at line 32 of file IdUniquenessStrategyFactoryImpl.h.


Member Function Documentation

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     }


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:41:40 2010 for TAO_PortableServer by  doxygen 1.4.7