diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-09-07 20:51:23 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-09-07 20:51:23 +0000 |
commit | 53280168a13101094bf3b7f408d7510a9fa660b5 (patch) | |
tree | 39e28f5a676688e0b21b9ab5fe8fd2dbfeb8fc0e /TAO/CIAO/DAnCE/ciao | |
parent | 1eca5fc1f4aab3aac2c49dc1a647efd52d85fc99 (diff) | |
download | ATCD-53280168a13101094bf3b7f408d7510a9fa660b5.tar.gz |
ChangeLogTag: Tue Sep 7 15:48:19 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/CIAO/DAnCE/ciao')
-rw-r--r-- | TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp | 1 | ||||
-rw-r--r-- | TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp | 231 | ||||
-rw-r--r-- | TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h | 36 |
3 files changed, 253 insertions, 15 deletions
diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp index 2a3d7b234da..3271512621a 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp @@ -86,5 +86,4 @@ namespace CIAO return PortableServer::POA::_duplicate (container_->_ciao_the_POA ()); } - } diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp index 8c32faedf7f..f33f04afdf3 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp @@ -29,15 +29,16 @@ namespace CIAO ACE_TRY_NEW_ENV { ::Components::SessionComponent_var scom = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER); + ::Components::SessionComponent::_narrow ( + this->executor_.in () + ACE_ENV_ARG_PARAMETER + ); ACE_TRY_CHECK; if (! ::CORBA::is_nil (scom.in ())) - { - scom->ccm_remove (ACE_ENV_SINGLE_ARG_PARAMETER); - } + { + scom->ccm_remove (ACE_ENV_SINGLE_ARG_PARAMETER); + } } ACE_CATCHANY { @@ -121,21 +122,223 @@ namespace CIAO ACE_THROW_SPEC ((CORBA::SystemException)) { if (::CORBA::is_nil (object_ref)) - { - ACE_THROW_RETURN (::CORBA::BAD_PARAM (), 0); - } + { + ACE_THROW_RETURN (::CORBA::BAD_PARAM (), 0); + } ::CORBA::Object_var the_other = - object_ref->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); + object_ref->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); ::CORBA::Object_var me = - this->context_->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); + this->context_->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); - return me->_is_equivalent ( - the_other.in () - ACE_ENV_ARG_PARAMETER); + return me->_is_equivalent (the_other.in () + ACE_ENV_ARG_PARAMETER); + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + ::Components::CCMHome_ptr + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_ccm_home ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return this->context_->get_CCM_home (ACE_ENV_SINGLE_ARG_PARAMETER); + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + ::Components::PrimaryKeyBase * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_primary_key ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::NoKeyAvailable)) + { + ACE_THROW_RETURN (::Components::NoKeyAvailable (), 0); + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + ::Components::ComponentPortDescription * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_ports ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + OBV_Components::ComponentPortDescription *cps = 0; + ACE_NEW_RETURN (cps, + OBV_Components::ComponentPortDescription, + 0); + ::Components::ComponentPortDescription_var retv = cps; + + ::Components::FacetDescriptions_var facets_desc = + this->get_all_facets (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ::Components::ReceptacleDescriptions_var receptacle_desc = + this->get_all_receptacles (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ::Components::ConsumerDescriptions_var consumer_desc = + this->get_all_consumers (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ::Components::EmitterDescriptions_var emitter_desc = + this->get_all_emitters (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ::Components::PublisherDescriptions_var publisher_desc = + this->get_all_publishers (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + retv->facets (facets_desc.in ()); + retv->receptacles (receptacle_desc.in ()); + retv->consumers (consumer_desc.in ()); + retv->emitters (emitter_desc.in ()); + retv->publishers (publisher_desc.in ()); + + return retv._retn (); + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + CORBA::Object_ptr + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_get_component ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ::Components::SessionContext_var sc = + ::Components::SessionContext::_narrow ( + this->context_ + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK_RETURN (::CORBA::Object::_nil ()); + + if (! ::CORBA::is_nil (sc.in ())) + { + return sc->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); + } + + ::Components::EntityContext_var ec = + ::Components::EntityContext::_narrow ( + this->context_ + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK_RETURN (::CORBA::Object::_nil ()); + + if (! ::CORBA::is_nil (ec.in ())) + { + return ec->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); + } + + ACE_THROW_RETURN (CORBA::INTERNAL (), + ::CORBA::Object::_nil ()); + } + + // CIAO-specific operations. + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + void + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ::Components::SessionComponent_var temp = + ::Components::SessionComponent::_narrow ( + this->executor_.in () + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK; + + if (! ::CORBA::is_nil (temp.in ())) + { + temp->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + } + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + void + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_activate ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ::Components::SessionComponent_var temp = + ::Components::SessionComponent::_narrow ( + this->executor_.in () + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK; + + if (! ::CORBA::is_nil (temp.in ())) + { + temp->ccm_activate (ACE_ENV_SINGLE_ARG_PARAMETER); + } + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + void + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ::Components::SessionComponent_var temp = + ::Components::SessionComponent::_narrow ( + this->executor_.in () + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK; + + if (! ::CORBA::is_nil (temp.in ())) + { + temp->ciao_postactivate (ACE_ENV_SINGLE_ARG_PARAMETER); + } + } + + template <typename BASE_SKEL, + typename EXEC, + typename EXEC_VAR, + typename CONTEXT> + void + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_ciao_passivate ( + ACE_ENV_SINGLE_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ::Components::SessionComponent_var temp = + ::Components::SessionComponent::_narrow ( + this->executor_.in () + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK; + + if (! ::CORBA::is_nil (temp.in ())) + { + temp->ccm_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); + } } } diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h index 11e53b91985..48af7435c3c 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h @@ -63,6 +63,42 @@ namespace CIAO ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); + virtual ::Components::CCMHome_ptr + get_ccm_home (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual ::Components::PrimaryKeyBase * + get_primary_key (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + ::Components::NoKeyAvailable)); + + virtual ::Components::ComponentPortDescription * + get_all_ports (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Object_ptr + _get_component (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // CIAO-specific operations. + + void + ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void + ciao_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void + ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// @@NOTE: The busted operation. + void + _ciao_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + protected: EXEC_VAR executor_; |