diff options
author | huangming <huangminghuang@users.noreply.github.com> | 2003-12-07 02:34:53 +0000 |
---|---|---|
committer | huangming <huangminghuang@users.noreply.github.com> | 2003-12-07 02:34:53 +0000 |
commit | 8797daa9c5341ccad747c5953c81636ad8a474f6 (patch) | |
tree | e7fc8cdf4f020b1f23e188dc06c2c88d88ab36d0 | |
parent | 622bde0c31bd2224f2b0f9f805edd2e23b8ff910 (diff) | |
download | ATCD-8797daa9c5341ccad747c5953c81636ad8a474f6.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp | 127 |
2 files changed, 72 insertions, 62 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp index 4291efacc17..267e41a61a4 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp @@ -109,7 +109,10 @@ GroupInfoPublisherBase::setup_info(const FTRT::ManagerInfoList & info_list, else { result->successor = info_->successor; } - + { + CORBA::PolicyList_var pols; + result->successor->_validate_connection (pols.out ()); + } // update backups result->backups.length(successors_length); for (i = 0; i < successors_length; ++i) { @@ -117,6 +120,8 @@ GroupInfoPublisherBase::setup_info(const FTRT::ManagerInfoList & info_list, FtRtecEventChannelAdmin::EventChannel::_narrow( info_list[i+ my_position+1].ior.in() ACE_ENV_ARG_PARAMETER); + CORBA::PolicyList_var pols; + result->backups[i]->_validate_connection (pols.out ()); ACE_CHECK; } diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp index 16daa60e23c..98fd1608b38 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp @@ -138,67 +138,72 @@ FTEC_Gateway::~FTEC_Gateway() RtecEventChannelAdmin::EventChannel_ptr FTEC_Gateway::activate(PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) { - PortableServer::IdUniquenessPolicy_var id_uniqueness_policy = - poa->create_id_uniqueness_policy(PortableServer::MULTIPLE_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - PortableServer::LifespanPolicy_var lifespan = - poa->create_lifespan_policy(PortableServer::PERSISTENT - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - // create a USER_ID IdAssignmentPolicy object - PortableServer::IdAssignmentPolicy_var assign = - poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - CORBA::PolicyList policy_list; - policy_list.length(3); - - policy_list[0] = PortableServer::IdUniquenessPolicy::_duplicate( - id_uniqueness_policy.in()); - ACE_CHECK_RETURN(0); - policy_list[1]= - PortableServer::LifespanPolicy::_duplicate(lifespan.in()); - ACE_CHECK_RETURN(0); - policy_list[2]= - PortableServer::IdAssignmentPolicy::_duplicate(assign.in()); - ACE_CHECK_RETURN(0); - - PortableServer::POAManager_var mgr = poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - - impl_->poa = poa->create_POA("gateway_poa", mgr.in(), policy_list - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - id_uniqueness_policy->destroy(); - lifespan->destroy(); - assign->destroy(); - - PortableServer::ObjectId oid; - oid.length(16); - UUID::create(oid.get_buffer()); - - RtecEventChannelAdmin::EventChannel_var gateway; - - activate_object_with_id(gateway.out(), impl_->poa, this, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - ++oid[9]; - activate_object_with_id(impl_->consumer_admin.out(), - impl_->poa, - &impl_->consumer_admin_servant, - oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - ++oid[9]; - activate_object_with_id(impl_->supplier_admin.out(), - impl_->poa, - &impl_->supplier_admin_servant, - oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - return gateway._retn(); + // preallocation connections + CORBA::PolicyList_var pols; + impl_->ftec->_validate_connection (pols.out () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + PortableServer::IdUniquenessPolicy_var id_uniqueness_policy = + poa->create_id_uniqueness_policy(PortableServer::MULTIPLE_ID + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + PortableServer::LifespanPolicy_var lifespan = + poa->create_lifespan_policy(PortableServer::PERSISTENT + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + // create a USER_ID IdAssignmentPolicy object + PortableServer::IdAssignmentPolicy_var assign = + poa->create_id_assignment_policy(PortableServer::USER_ID + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + CORBA::PolicyList policy_list; + policy_list.length(3); + + policy_list[0] = PortableServer::IdUniquenessPolicy::_duplicate( + id_uniqueness_policy.in()); + ACE_CHECK_RETURN(0); + policy_list[1]= + PortableServer::LifespanPolicy::_duplicate(lifespan.in()); + ACE_CHECK_RETURN(0); + policy_list[2]= + PortableServer::IdAssignmentPolicy::_duplicate(assign.in()); + ACE_CHECK_RETURN(0); + + PortableServer::POAManager_var mgr = poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); + + impl_->poa = poa->create_POA("gateway_poa", mgr.in(), policy_list + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + id_uniqueness_policy->destroy(); + lifespan->destroy(); + assign->destroy(); + + PortableServer::ObjectId oid; + oid.length(16); + UUID::create(oid.get_buffer()); + + RtecEventChannelAdmin::EventChannel_var gateway; + + activate_object_with_id(gateway.out(), impl_->poa, this, oid ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + ++oid[9]; + activate_object_with_id(impl_->consumer_admin.out(), + impl_->poa, + &impl_->consumer_admin_servant, + oid ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + ++oid[9]; + activate_object_with_id(impl_->supplier_admin.out(), + impl_->poa, + &impl_->supplier_admin_servant, + oid ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + return gateway._retn(); } //= The RtecEventChannelAdmin::EventChannel methods |