00001
00002
00003 #include "tao/PortableServer/IdUniquenessStrategyUnique.h"
00004 #include "tao/PortableServer/Root_POA.h"
00005
00006 ACE_RCSID (PortableServer,
00007 Id_Uniqueness_Strategy,
00008 "$Id: IdUniquenessStrategyUnique.cpp 76551 2007-01-24 13:42:44Z johnnyw $")
00009
00010
00011 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00012
00013 namespace TAO
00014 {
00015 namespace Portable_Server
00016 {
00017 IdUniquenessStrategyUnique::IdUniquenessStrategyUnique (void) :
00018 poa_ (0)
00019 {
00020 }
00021
00022 void
00023 IdUniquenessStrategyUnique::strategy_init (
00024 TAO_Root_POA *poa
00025 )
00026 {
00027 poa_ = poa;
00028 }
00029
00030 void
00031 IdUniquenessStrategyUnique::strategy_cleanup (
00032 void)
00033 {
00034 poa_ = 0;
00035 }
00036
00037 bool
00038 IdUniquenessStrategyUnique::is_servant_activation_allowed (
00039 PortableServer::Servant servant,
00040 bool &wait_occurred_restart_call)
00041 {
00042
00043
00044 int const result =
00045 this->poa_->is_servant_active (servant,
00046 wait_occurred_restart_call);
00047
00048 return (!(result || wait_occurred_restart_call));
00049 }
00050
00051 bool
00052 IdUniquenessStrategyUnique::allow_multiple_activations (void) const
00053 {
00054 return false;
00055 }
00056
00057 ::PortableServer::IdUniquenessPolicyValue
00058 IdUniquenessStrategyUnique::type() const
00059 {
00060 return ::PortableServer::UNIQUE_ID;
00061 }
00062
00063 }
00064 }
00065
00066 TAO_END_VERSIONED_NAMESPACE_DECL
00067
00068 ACE_FACTORY_NAMESPACE_DEFINE (
00069 ACE_Local_Service,
00070 IdUniquenessStrategyUnique,
00071 TAO::Portable_Server::IdUniquenessStrategyUnique)
00072
00073 ACE_STATIC_SVC_DEFINE (
00074 IdUniquenessStrategyUnique,
00075 ACE_TEXT ("IdUniquenessStrategyUnique"),
00076 ACE_SVC_OBJ_T,
00077 &ACE_SVC_NAME (IdUniquenessStrategyUnique),
00078 ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
00079 0)