summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp')
-rw-r--r--TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp196
1 files changed, 32 insertions, 164 deletions
diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
index 4e39010461f..443aab29064 100644
--- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
@@ -26,200 +26,68 @@ namespace CIAO
typename CONTEXT>
Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::~Servant_Impl (void)
{
- ACE_TRY_NEW_ENV
- {
- ::Components::SessionComponent_var scom =
- ::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);
- }
- }
- ACE_CATCHANY
- {
- }
- ACE_ENDTRY;
-
- this->context_->_remove_ref ();
- }
-
- // Operations for CCMObject interface.
-
- template <typename BASE_SKEL,
- typename EXEC,
- typename EXEC_VAR,
- typename CONTEXT>
- CORBA::Boolean
- Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::same_component (
- CORBA::Object_ptr object_ref
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((CORBA::SystemException))
- {
- if (::CORBA::is_nil (object_ref))
- {
- ACE_THROW_RETURN (::CORBA::BAD_PARAM (), 0);
- }
-
- ::CORBA::Object_var the_other =
- 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);
- ACE_CHECK_RETURN (0);
-
- 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
+ ::Components::FacetDescriptions *
+ Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_facets (
+ ACE_ENV_SINGLE_ARG_DECL_NOT_USED
)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return this->context_->get_CCM_home (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
+ ::Components::FacetDescriptions *tmp = 0;
+ ACE_NEW_RETURN (tmp,
+ ::Components::FacetDescriptions,
+ 0);
- 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 ());
+ ::Components::FacetDescriptions_var retval = tmp;
- if (! ::CORBA::is_nil (sc.in ()))
- {
- return sc->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
+ retval->length (this->facet_table_.current_size ());
+ CORBA::ULong i = 0;
- ::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 ()))
+ for (FacetTable::iterator iter = this->facet_table_.begin ();
+ iter != this->facet_table_.end ();
+ ++iter, ++i)
{
- return ec->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
+ FacetTable::ENTRY & entry = *iter;
+ retval[i] = entry.int_id_;
}
- ACE_THROW_RETURN (CORBA::INTERNAL (),
- ::CORBA::Object::_nil ());
+ return retval._retn ();
}
- // 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
+ ::Components::ConsumerDescriptions *
+ Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_consumers (
+ ACE_ENV_SINGLE_ARG_DECL_NOT_USED
)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ::Components::SessionComponent_var temp =
- ::Components::SessionComponent::_narrow (
- this->executor_.in ()
- ACE_ENV_ARG_PARAMETER
- );
- ACE_CHECK;
+ ::Components::ConsumerDescriptions *tmp = 0;
+ ACE_NEW_RETURN (tmp,
+ ::Components::ConsumerDescriptions,
+ 0);
- if (! ::CORBA::is_nil (temp.in ()))
- {
- temp->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- }
+ ::Components::ConsumerDescriptions_var retval = tmp;
- 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;
+ retval->length (this->consumer_table_.current_size ());
+ CORBA::ULong i = 0;
- if (! ::CORBA::is_nil (temp.in ()))
+ for (ConsumerTable::iterator iter = this->consumer_table_.begin ();
+ iter != this->consumer_table_.end ();
+ ++iter, ++i)
{
- temp->ccm_activate (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ConsumerTable::ENTRY & entry = *iter;
+ retval[i] = entry.int_id_;
}
- }
- 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);
- }
+ return retval._retn ();
}
}