TAO::Portable_Server::RequestProcessingStrategyFactoryImpl Class Reference

#include <RequestProcessingStrategyFactoryImpl.h>

Inheritance diagram for TAO::Portable_Server::RequestProcessingStrategyFactoryImpl:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual RequestProcessingStrategycreate (::PortableServer::RequestProcessingPolicyValue value,::PortableServer::ServantRetentionPolicyValue srvalue)
 Create a new servant retention strategy.
virtual void destroy (RequestProcessingStrategy *strategy)

Detailed Description

Definition at line 32 of file RequestProcessingStrategyFactoryImpl.h.


Member Function Documentation

RequestProcessingStrategy * TAO::Portable_Server::RequestProcessingStrategyFactoryImpl::create ( ::PortableServer::RequestProcessingPolicyValue  value,
::PortableServer::ServantRetentionPolicyValue  srvalue 
) [virtual]

Create a new servant retention strategy.

Implements TAO::Portable_Server::RequestProcessingStrategyFactory.

Definition at line 22 of file RequestProcessingStrategyFactoryImpl.cpp.

References ACE_ERROR, ACE_TEXT(), TAO::Portable_Server::RequestProcessingStrategyFactory::create(), ACE_Dynamic_Service< TYPE >::instance(), and LM_ERROR.

00025     {
00026       RequestProcessingStrategy* strategy = 0;
00027       RequestProcessingStrategyFactory *strategy_factory = 0;
00028 
00029       switch (value)
00030       {
00031         case ::PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY :
00032         {
00033           strategy_factory =
00034             ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyAOMOnlyFactory");
00035 
00036           break;
00037         }
00038         case ::PortableServer::USE_DEFAULT_SERVANT :
00039         {
00040           strategy_factory =
00041             ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyDefaultServantFactory");
00042 
00043           break;
00044         }
00045         case ::PortableServer::USE_SERVANT_MANAGER :
00046         {
00047 #if (TAO_HAS_MINIMUM_POA == 0)
00048           switch (srvalue)
00049           {
00050             case ::PortableServer::RETAIN :
00051             {
00052               strategy_factory =
00053                 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantActivatorFactory");
00054 
00055               break;
00056             }
00057             case ::PortableServer::NON_RETAIN :
00058             {
00059               strategy_factory =
00060                 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantLocatorFactory");
00061 
00062               break;
00063             }
00064           }
00065 #endif /* TAO_HAS_MINIMUM_POA == 0 */
00066           break;
00067         }
00068       }
00069 
00070       if (strategy_factory != 0)
00071         strategy = strategy_factory->create (value, srvalue);
00072       else
00073         ACE_ERROR ((LM_ERROR,
00074                     ACE_TEXT ("(%P|%t) %p\n"),
00075                     ACE_TEXT ("ERROR, Unable to get ")
00076                     ACE_TEXT ("RequestProcessingStrategyFactory")));
00077 
00078       return strategy;
00079     }

void TAO::Portable_Server::RequestProcessingStrategyFactoryImpl::destroy ( RequestProcessingStrategy strategy  )  [virtual]

Implements TAO::Portable_Server::RequestProcessingStrategyFactory.

Definition at line 82 of file RequestProcessingStrategyFactoryImpl.cpp.

References TAO::Portable_Server::RequestProcessingStrategyFactory::destroy(), ACE_Dynamic_Service< TYPE >::instance(), TAO::Portable_Server::RequestProcessingStrategy::sr_type(), and TAO::Portable_Server::RequestProcessingStrategy::type().

00085     {
00086       RequestProcessingStrategyFactory *strategy_factory = 0;
00087 
00088       switch (strategy->type ())
00089       {
00090         case ::PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY :
00091         {
00092           strategy_factory =
00093             ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyAOMOnlyFactory");
00094 
00095           break;
00096         }
00097         case ::PortableServer::USE_DEFAULT_SERVANT :
00098         {
00099           strategy_factory =
00100             ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyDefaultServantFactory");
00101 
00102           break;
00103         }
00104         case ::PortableServer::USE_SERVANT_MANAGER :
00105         {
00106 #if (TAO_HAS_MINIMUM_POA == 0)
00107           switch (strategy->sr_type ())
00108           {
00109             case ::PortableServer::RETAIN :
00110             {
00111               strategy_factory =
00112                 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantActivatorFactory");
00113 
00114               break;
00115             }
00116             case ::PortableServer::NON_RETAIN :
00117             {
00118               strategy_factory =
00119                 ACE_Dynamic_Service<RequestProcessingStrategyFactory>::instance ("RequestProcessingStrategyServantLocatorFactory");
00120               break;
00121             }
00122           }
00123 #endif /* TAO_HAS_MINIMUM_POA == 0 */
00124           break;
00125         }
00126       }
00127 
00128       if (strategy_factory != 0)
00129         {
00130           strategy_factory->destroy (strategy);
00131         }
00132     }


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