TAO::Portable_Server::ServantRetentionStrategyFactoryImpl Class Reference

#include <ServantRetentionStrategyFactoryImpl.h>

Inheritance diagram for TAO::Portable_Server::ServantRetentionStrategyFactoryImpl:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ServantRetentionStrategycreate (::PortableServer::ServantRetentionPolicyValue value)
 Create a new servant retention strategy.
virtual void destroy (ServantRetentionStrategy *strategy)

Detailed Description

Definition at line 32 of file ServantRetentionStrategyFactoryImpl.h.


Member Function Documentation

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     }


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