ServantRetentionStrategyRetainFactoryImpl.cpp

Go to the documentation of this file.
00001 // ServantRetentionStrategyRetainFactoryImpl.cpp,v 1.8 2006/03/10 07:19:16 jtc Exp
00002 
00003 #include "tao/PortableServer/ServantRetentionStrategyRetainFactoryImpl.h"
00004 #include "tao/PortableServer/ServantRetentionStrategy.h"
00005 #include "tao/PortableServer/ServantRetentionStrategyRetain.h"
00006 #include "ace/Dynamic_Service.h"
00007 #include "ace/Log_Msg.h"
00008 
00009 ACE_RCSID (PortableServer,
00010            ServantRetentionStrategyRetainFactoryImpl,
00011            "ServantRetentionStrategyRetainFactoryImpl.cpp,v 1.8 2006/03/10 07:19:16 jtc Exp")
00012 
00013 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00014 
00015 namespace TAO
00016 {
00017   namespace Portable_Server
00018   {
00019     ServantRetentionStrategy*
00020     ServantRetentionStrategyRetainFactoryImpl::create (
00021       ::PortableServer::ServantRetentionPolicyValue value)
00022     {
00023       ServantRetentionStrategy* strategy = 0;
00024 
00025       switch (value)
00026       {
00027         case ::PortableServer::RETAIN :
00028         {
00029           ACE_NEW_RETURN (strategy, ServantRetentionStrategyRetain, 0);
00030           break;
00031         }
00032         case ::PortableServer::NON_RETAIN :
00033         {
00034           ACE_ERROR ((LM_ERROR, "Incorrect type in ServantRetentionStrategyNonRetainFactoryImpl"));
00035           break;
00036         }
00037       }
00038 
00039       return strategy;
00040     }
00041 
00042     void
00043     ServantRetentionStrategyRetainFactoryImpl::destroy (
00044       ServantRetentionStrategy *strategy
00045       ACE_ENV_ARG_DECL)
00046     {
00047       strategy->strategy_cleanup (ACE_ENV_SINGLE_ARG_PARAMETER);
00048       ACE_CHECK;
00049 
00050       delete strategy;
00051     }
00052   }
00053 }
00054 
00055 TAO_END_VERSIONED_NAMESPACE_DECL
00056 
00057 ACE_STATIC_SVC_DEFINE (
00058   ServantRetentionStrategyRetainFactoryImpl,
00059   ACE_TEXT ("ServantRetentionStrategyRetainFactory"),
00060   ACE_SVC_OBJ_T,
00061   &ACE_SVC_NAME (ServantRetentionStrategyRetainFactoryImpl),
00062   ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
00063   0)
00064 
00065 ACE_FACTORY_NAMESPACE_DEFINE (
00066   ACE_Local_Service,
00067   ServantRetentionStrategyRetainFactoryImpl,
00068   TAO::Portable_Server::ServantRetentionStrategyRetainFactoryImpl)

Generated on Thu Nov 9 12:40:45 2006 for TAO_PortableServer by doxygen 1.3.6