diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/examples/BasicSP/EC/EC_svnt.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/examples/BasicSP/EC/EC_svnt.cpp | 992 |
1 files changed, 0 insertions, 992 deletions
diff --git a/TAO/CIAO/DAnCE/examples/BasicSP/EC/EC_svnt.cpp b/TAO/CIAO/DAnCE/examples/BasicSP/EC/EC_svnt.cpp deleted file mode 100644 index 9a4ae0acd0a..00000000000 --- a/TAO/CIAO/DAnCE/examples/BasicSP/EC/EC_svnt.cpp +++ /dev/null @@ -1,992 +0,0 @@ -// $Id$ -// -// **** Code generated by the **** -// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** -// CIAO has been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// CIDL Compiler has been developed by: -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about CIAO is available at: -// http://www.dre.vanderbilt.edu/CIAO - -#include "EC_svnt.h" -#include "Cookies.h" -#include "ciao/Servant_Activator.h" -#include "ciao/Port_Activator_T.h" - -namespace EC_Impl -{ - namespace CIAO_GLUE_BasicSP - { - EC_Context::EC_Context ( - ::Components::CCMHome_ptr home, - ::CIAO::Session_Container *c, - EC_Servant *sv) - : home_ (::Components::CCMHome::_duplicate (home)), - container_ (c), - servant_ (sv) - { - } - - EC_Context::~EC_Context (void) - { - } - - // Operations from ::Components::CCMContext. - - ::Components::Principal_ptr - EC_Context::get_caller_principal ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN ( - ::CORBA::NO_IMPLEMENT (), - ::Components::Principal::_nil ()); - } - - ::Components::CCMHome_ptr - EC_Context::get_CCM_home ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - return ::Components::CCMHome::_duplicate (this->home_.in ()); - } - - CORBA::Boolean - EC_Context::get_rollback_only ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::IllegalState)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::Transaction::UserTransaction_ptr - EC_Context::get_user_transaction ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::IllegalState)) - { - ACE_THROW_RETURN ( - ::CORBA::NO_IMPLEMENT (), - ::Components::Transaction::UserTransaction::_nil ()); - } - - CORBA::Boolean - EC_Context::is_caller_in_role ( - const char * /* role */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - void - EC_Context::set_rollback_only ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::IllegalState)) - { - ACE_THROW (CORBA::NO_IMPLEMENT ()); - } - - // Operations from ::Components::SessionContextinterface. - - CORBA::Object_ptr - EC_Context::get_CCM_object ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::IllegalState)) - { - if (CORBA::is_nil (this->component_.in ())) - { - CORBA::Object_var obj = - this->container_->get_objref ( - this->servant_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - this->component_ = - ::BasicSP::EC::_narrow ( - obj.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - if (CORBA::is_nil (this->component_.in ())) - { - ACE_THROW_RETURN ( - ::CORBA::INTERNAL (), - ::CORBA::Object::_nil ()); - } - } - - return ::BasicSP::EC::_duplicate ( - this->component_.in ()); - } - - // Operations for EC receptacles and event sources, - // defined in ::BasicSP::CCM_EC_Context. - - void - EC_Context::push_timeout ( - ::BasicSP::TimeOut *ev - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_CString my_uuid = this->servant_->component_UUID (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - my_uuid += "_timeout_publisher"; - - this->container_->push_event (ev, - my_uuid.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - /* - ACE_Active_Map_Manager< - ::BasicSP::TimeOutConsumer_var>::iterator end = - this->ciao_publishes_timeout_map_.end (); - - for (ACE_Active_Map_Manager< - ::BasicSP::TimeOutConsumer_var>::iterator iter = - this->ciao_publishes_timeout_map_.begin (); - iter != end; - ++iter) - { - ACE_Active_Map_Manager< - ::BasicSP::TimeOutConsumer_var>::ENTRY &entry = *iter; - - ::BasicSP::TimeOutConsumer_var c = - ::BasicSP::TimeOutConsumer::_narrow ( - entry.int_id_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - entry.int_id_->push_TimeOut ( - ev - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - */ - } - - ::Components::Cookie * - EC_Context::subscribe_timeout ( - ::BasicSP::TimeOutConsumer_ptr c - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::ExceededConnectionLimit)) - { - if (CORBA::is_nil (c)) - { - ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0); - } - - ::BasicSP::TimeOutConsumer_var sub = - ::BasicSP::TimeOutConsumer::_duplicate (c); - - ACE_Active_Map_Manager_Key key; - this->ciao_publishes_timeout_map_.bind (sub.in (), key); - sub._retn (); - - ::Components::Cookie_var retv = new ::CIAO::Map_Key_Cookie (key); - return retv._retn (); - } - - ::BasicSP::TimeOutConsumer_ptr - EC_Context::unsubscribe_timeout ( - ::Components::Cookie *ck - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidConnection)) - { - ::BasicSP::TimeOutConsumer_var retv; - ACE_Active_Map_Manager_Key key; - - if (ck == 0 || ::CIAO::Map_Key_Cookie::extract (ck, key) == false) - { - ACE_THROW_RETURN ( - ::Components::InvalidConnection (), - ::BasicSP::TimeOutConsumer::_nil ()); - } - - if (this->ciao_publishes_timeout_map_.unbind (key, retv) != 0) - { - ACE_THROW_RETURN ( - ::Components::InvalidConnection (), - ::BasicSP::TimeOutConsumer::_nil ()); - } - - return retv._retn (); - } - - // CIAO-specific. - - ::CIAO::Session_Container * - EC_Context::_ciao_the_Container (void) const - { - return this->container_; - } - - EC_Context * - EC_Context::_narrow ( - ::Components::SessionContext_ptr p - ACE_ENV_ARG_DECL_NOT_USED) - { - return dynamic_cast<EC_Context *> (p); - } - } - - namespace CIAO_GLUE_BasicSP - { - EC_Servant::EC_Servant ( - ::BasicSP::CCM_EC_ptr exe, - ::Components::CCMHome_ptr h, - ::CIAO::Session_Container *c) - : our_base (exe, c) - { - this->context_ = new EC_Context (h, c, this); - - ACE_TRY_NEW_ENV - { - ::Components::SessionComponent_var scom = - ::Components::SessionComponent::_narrow ( - exe - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (! ::CORBA::is_nil (scom.in ())) - { - scom->set_session_context ( - this->context_ - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - this->populate_port_tables ( - ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_CATCHANY - { - } - - ACE_ENDTRY; - } - - EC_Servant::~EC_Servant (void) - { - } - - void - EC_Servant::set_attributes ( - const ::Components::ConfigValues &descr - ACE_ENV_ARG_DECL_NOT_USED) - { - for (CORBA::ULong i = 0; - i < descr.length (); - ++i) - { - const char *descr_name = descr[i]->name (); - ::CORBA::Any &descr_value = descr[i]->value (); - - if (ACE_OS::strcmp (descr_name, "hertz") == 0) - { - ::CORBA::Long _ciao_extract_val = 0; - descr_value >>= _ciao_extract_val; - this->hertz (_ciao_extract_val); - continue; - } - - ACE_UNUSED_ARG (descr_name); - ACE_UNUSED_ARG (descr_value); - } - } - - // Operations for Navigation interface. - - CORBA::Object_ptr - EC_Servant::provide_facet ( - const char *name - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - if (name == 0) - { - ACE_THROW_RETURN ( - ::CORBA::BAD_PARAM (), - ::CORBA::Object::_nil ()); - } - - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::CORBA::Object::_nil ()); - } - - ::Components::FacetDescriptions * - EC_Servant::get_named_facets ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::EmitterDescriptions * - EC_Servant::get_all_emitters ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::EmitterDescriptions * - EC_Servant::get_named_emitters ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::Cookie * - EC_Servant::subscribe_timeout ( - ::BasicSP::TimeOutConsumer_ptr c - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::ExceededConnectionLimit)) - { - return this->context_->subscribe_timeout ( - c - ACE_ENV_ARG_PARAMETER); - } - - ::BasicSP::TimeOutConsumer_ptr - EC_Servant::unsubscribe_timeout ( - ::Components::Cookie *ck - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidConnection)) - { - return this->context_->unsubscribe_timeout ( - ck - ACE_ENV_ARG_PARAMETER); - } - - ::Components::Cookie * - EC_Servant::connect ( - const char *name, - ::CORBA::Object_ptr connection - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::InvalidConnection, - ::Components::AlreadyConnected, - ::Components::ExceededConnectionLimit)) - { - // If the component has no receptacles, this will be unused. - ACE_UNUSED_ARG (connection); - - if (name == 0) - { - ACE_THROW_RETURN (::Components::InvalidName (), 0); - } - - ACE_THROW_RETURN (::Components::InvalidName (), 0); - } - - CORBA::Object_ptr - EC_Servant::disconnect ( - const char *name, - ::Components::Cookie * ck - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::InvalidConnection, - ::Components::CookieRequired, - ::Components::NoConnection)) - { - if (name == 0) - { - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::CORBA::Object::_nil ()); - } - - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::CORBA::Object::_nil ()); - - ACE_UNUSED_ARG (ck); - } - - ::Components::ConnectionDescriptions * - EC_Servant::get_connections ( - const char * /* name */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - EC_Servant::get_all_receptacles ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - EC_Servant::get_named_receptacles ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::EventConsumerBase_ptr - EC_Servant::get_consumer ( - const char *sink_name - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - if (sink_name == 0) - { - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::Components::EventConsumerBase::_nil ()); - } - - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::Components::EventConsumerBase::_nil ()); - } - - void - EC_Servant::connect_consumer ( - const char * emitter_name, - ::Components::EventConsumerBase_ptr consumer - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::AlreadyConnected, - ::Components::InvalidConnection)) - { - if (emitter_name == 0) - { - ACE_THROW (::CORBA::BAD_PARAM ()); - } - - ACE_UNUSED_ARG (consumer); - ACE_THROW (::Components::InvalidName ()); - } - - ::Components::EventConsumerBase_ptr - EC_Servant::disconnect_consumer ( - const char * /* source_name */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::NoConnection)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ConsumerDescriptions * - EC_Servant::get_named_consumers ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::Cookie * - EC_Servant::subscribe ( - const char *publisher_name, - ::Components::EventConsumerBase_ptr subscribe - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::InvalidConnection, - ::Components::ExceededConnectionLimit)) - { - // Just in case there are no if blocks - ACE_UNUSED_ARG (subscribe); - - if (publisher_name == 0) - { - ACE_THROW_RETURN (::Components::InvalidName (), 0); - } - - if (ACE_OS::strcmp (publisher_name, "timeout") == 0) - { - ::BasicSP::TimeOutConsumer_var _ciao_consumer = - ::BasicSP::TimeOutConsumer::_narrow ( - subscribe - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (::CORBA::is_nil (_ciao_consumer.in ())) - { - ACE_THROW_RETURN (::Components::InvalidConnection (), 0); - } - - return this->subscribe_timeout ( - _ciao_consumer.in () - ACE_ENV_ARG_PARAMETER); - } - - ACE_THROW_RETURN (::Components::InvalidName (), 0); - } - - ::Components::EventConsumerBase_ptr - EC_Servant::unsubscribe ( - const char *publisher_name, - ::Components::Cookie *ck - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName, - ::Components::InvalidConnection)) - { - // Just in case there are no if blocks - ACE_UNUSED_ARG (ck); - - if (publisher_name == 0) - { - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::Components::EventConsumerBase::_nil ()); - } - - if (ACE_OS::strcmp (publisher_name, "timeout") == 0) - { - return this->unsubscribe_timeout ( - ck - ACE_ENV_ARG_PARAMETER); - } - - ACE_THROW_RETURN ( - ::Components::InvalidName (), - ::Components::EventConsumerBase::_nil ()); - } - - ::Components::PublisherDescriptions * - EC_Servant::get_all_publishers ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::PublisherDescriptions * - EC_Servant::get_named_publishers ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - // Operations for CCMObject interface. - - void - EC_Servant::component_UUID ( - const char * new_component_UUID - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->component_UUID_ = new_component_UUID; - } - - CIAO::CONNECTION_ID - EC_Servant::component_UUID ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - return CORBA::string_dup (this->component_UUID_.c_str ()); - } - - CORBA::IRObject_ptr - EC_Servant::get_component_def ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN ( - ::CORBA::NO_IMPLEMENT (), - ::CORBA::IRObject::_nil ()); - } - - void - EC_Servant::configuration_complete ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::InvalidConfiguration)) - { - // CIAO to-do - } - - void - EC_Servant::remove ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::RemoveFailure)) - { - // CIAO to-do - } - - CORBA::Object_ptr - EC_Servant::get_facet_executor (const char *name - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException)) - { - if (name == 0) - { - ACE_THROW_RETURN ( - ::CORBA::BAD_PARAM (), - ::CORBA::Object::_nil ()); - } - - return CORBA::Object::_nil (); - } - - // Supported operations. - - void - EC_Servant::start ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->executor_->start ( - ACE_ENV_SINGLE_ARG_PARAMETER); - } - - void - EC_Servant::stop ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->executor_->stop ( - ACE_ENV_SINGLE_ARG_PARAMETER); - } - - // Component attribute operations. - - ::CORBA::Long - EC_Servant::hertz ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - return this->executor_->hertz ( - ACE_ENV_SINGLE_ARG_PARAMETER); - } - - void - EC_Servant::hertz ( - ::CORBA::Long hertz - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->executor_->hertz ( - hertz - ACE_ENV_ARG_PARAMETER); - } - - // Private method to populate the port tables. - void - EC_Servant::populate_port_tables ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::CORBA::Object_var obj_var; - ::Components::EventConsumerBase_var ecb_var; - } - } - - namespace CIAO_GLUE_BasicSP - { - ECHome_Servant::ECHome_Servant ( - ::BasicSP::CCM_ECHome_ptr exe, - ::CIAO::Session_Container *c) - : executor_ (::BasicSP::CCM_ECHome::_duplicate (exe)), - container_ (c) - { - } - - ECHome_Servant::~ECHome_Servant (void) - { - } - - // Home operations. - - // Home supported interface operations. - - // Home factory and finder operations. - - ::BasicSP::EC_ptr - ECHome_Servant::new_EC ( - ::CORBA::Long hertz - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::EnterpriseComponent_var _ciao_ec = - this->executor_->new_EC ( - hertz - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC_ptr::_nil ()); - - ::BasicSP::CCM_EC_var _ciao_comp = - ::BasicSP::CCM_EC::_narrow ( - _ciao_ec.in () - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN (::BasicSP::EC_ptr::_nil ()); - - return this->_ciao_activate_component ( - _ciao_comp.in () - ACE_ENV_ARG_PARAMETER); - } - - // Home attribute operations. - - // Operations for keyless home interface. - - ::Components::CCMObject_ptr - ECHome_Servant::create_component ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::CreateFailure)) - { - return this->create (ACE_ENV_SINGLE_ARG_PARAMETER); - } - - // Operations for implicit home interface. - - ::BasicSP::EC_ptr - ECHome_Servant::create ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::CreateFailure)) - { - if (this->executor_.in () == 0) - { - ACE_THROW_RETURN ( - ::CORBA::INTERNAL (), - ::BasicSP::EC::_nil ()); - } - - ::Components::EnterpriseComponent_var _ciao_ec = - this->executor_->create (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - ::BasicSP::CCM_EC_var _ciao_comp = - ::BasicSP::CCM_EC::_narrow ( - _ciao_ec.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - return this->_ciao_activate_component ( - _ciao_comp.in () - ACE_ENV_ARG_PARAMETER); - } - - // Operations for CCMHome interface. - - ::CORBA::IRObject_ptr - ECHome_Servant::get_component_def ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN ( - ::CORBA::NO_IMPLEMENT (), - ::CORBA::IRObject::_nil ()); - } - - ::CORBA::IRObject_ptr - ECHome_Servant::get_home_def ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN ( - ::CORBA::NO_IMPLEMENT (), - ::CORBA::IRObject::_nil ()); - } - - void - ECHome_Servant::remove_component ( - ::Components::CCMObject_ptr comp - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - ::CORBA::SystemException, - ::Components::RemoveFailure)) - { - ::BasicSP::EC_var _ciao_comp = - ::BasicSP::EC::_narrow ( - comp - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (_ciao_comp.in ())) - { - ACE_THROW (CORBA::INTERNAL ()); - } - - _ciao_comp->remove (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->_ciao_passivate_component ( - _ciao_comp.in () - ACE_ENV_ARG_PARAMETER); - } - - // CIAO-specific operations. - - ::BasicSP::EC_ptr - ECHome_Servant::_ciao_activate_component ( - ::BasicSP::CCM_EC_ptr exe - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::CORBA::Object_var hobj = - this->container_->get_objref ( - this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - ::Components::CCMHome_var home = - ::Components::CCMHome::_narrow ( - hobj.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - EC_Servant *svt = - new EC_Servant ( - exe, - home.in (), - this->container_); - - PortableServer::ServantBase_var safe (svt); - PortableServer::ObjectId_var oid; - - CORBA::Object_var objref = - this->container_->install_component ( - svt, - oid.out () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - ::BasicSP::EC_var ho = - ::BasicSP::EC::_narrow ( - objref.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (::BasicSP::EC::_nil ()); - - if (this->component_map_.bind (oid.in (), svt) == 0) - { - safe._retn (); - } - - return ho._retn (); - } - - void - ECHome_Servant::_ciao_passivate_component ( - ::BasicSP::EC_ptr comp - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::ObjectId_var oid; - - this->container_->uninstall_component ( - comp, - oid.out () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - EC_Servant *servant = 0; - - if (this->component_map_.unbind (oid.in (), servant) == 0) - { - PortableServer::ServantBase_var safe (servant); - - servant->_ciao_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - } - } - - extern "C" EC_SVNT_Export ::PortableServer::Servant - createECHome_Servant ( - ::Components::HomeExecutorBase_ptr p, - CIAO::Session_Container *c - ACE_ENV_ARG_DECL) - { - if (p == 0) - { - return 0; - } - - ::BasicSP::CCM_ECHome_var x = - ::BasicSP::CCM_ECHome::_narrow ( - p - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (::CORBA::is_nil (x.in ())) - { - return 0; - } - - return new - CIAO_GLUE_BasicSP::ECHome_Servant ( - x.in (), - c); - } -} - |