summaryrefslogtreecommitdiff
path: root/TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp')
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp955
1 files changed, 0 insertions, 955 deletions
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp b/TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp
deleted file mode 100644
index c574360909e..00000000000
--- a/TAO/CIAO/examples/handcrafted/BasicSP/BMDisplay/BMDisplay_svnt.cpp
+++ /dev/null
@@ -1,955 +0,0 @@
-// $Id$
-#include "BMDisplay_svnt.h"
-#include "Cookies.h"
-
-BasicSP::ReadData_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Context::get_connection_comp_data (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return BasicSP::ReadData::_duplicate (this->ciao_uses_comp_data_.in ());
-}
-
-// Simplex [receptacle name] connection management operations
-void
-CIAO_GLUE_BasicSP::BMDisplay_Context::connect_comp_data (BasicSP::ReadData_ptr c
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- ::Components::AlreadyConnected,
- ::Components::InvalidConnection))
-{
- if (! CORBA::is_nil (this->ciao_uses_comp_data_.in ()))
- ACE_THROW (::Components::AlreadyConnected ());
-
- if (CORBA::is_nil (c))
- ACE_THROW (::Components::InvalidConnection ());
-
- // When do we throw InvalidConnection exception?
- this->ciao_uses_comp_data_ = BasicSP::ReadData::_duplicate (c);
-}
-
-BasicSP::ReadData_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Context::disconnect_comp_data (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- ::Components::NoConnection))
-{
- if (CORBA::is_nil (this->ciao_uses_comp_data_.in ()))
- ACE_THROW (::Components::NoConnection ());
-
- return this->ciao_uses_comp_data_._retn ();
-}
-
-// Operations for ::Components::SessionContext interface
-CORBA::Object_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Context::get_CCM_object (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::IllegalState))
-{
- // @@ How do I check for IllegalState here? When it's not in a
- // callback operation...
- // ACE_THROW_RETURN (::Components::IllegalState (), 0);
-
- if (CORBA::is_nil (this->component_.in ()))
- {
- CORBA::Object_var obj = this->container_->get_objref (this->servant_
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- this->component_ = BasicSP::BMDisplay::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- if (CORBA::is_nil (this->component_.in ()))
- ACE_THROW_RETURN (CORBA::INTERNAL (), 0); // This should not happen...
- }
- return BasicSP::BMDisplay::_duplicate (this->component_.in ());
-}
-
-
-CIAO_GLUE_BasicSP::BMDisplay_Context::BMDisplay_Context (::Components::CCMHome_ptr home,
- ::CIAO::Session_Container *c,
- CIAO_GLUE_BasicSP::BMDisplay_Servant *sv)
- : home_ (::Components::CCMHome::_duplicate (home)),
- container_ (c),
- servant_ (sv)
-{
-
-}
-
-
-CIAO_GLUE_BasicSP::BMDisplay_Context::~BMDisplay_Context ()
-{
-}
-
-// Operations for emits interfaces.
-
-// Operations for ::Components::CCMContext
- ::Components::Principal_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Context::get_caller_principal (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // @@ We don't support Security in CIAO yet.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
- ::Components::CCMHome_ptr
-CIAO_GLUE_BasicSP::BMDisplay_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
-CIAO_GLUE_BasicSP::BMDisplay_Context::get_rollback_only (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::IllegalState))
-{
- // @@ We don't support Transaction in CIAO yet.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
- ::Components::Transaction::UserTransaction_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Context::get_user_transaction (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::IllegalState))
-{
- // @@ We don't support Transaction in CIAO yet.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
- CORBA::Boolean
-CIAO_GLUE_BasicSP::BMDisplay_Context::is_caller_in_role (const char * role
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ACE_UNUSED_ARG (role);
-
- // @@ We don't support Transaction in CIAO yet.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
- void
-CIAO_GLUE_BasicSP::BMDisplay_Context::set_rollback_only (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::IllegalState))
-{
- // @@ We don't support Transaction in CIAO yet.
- ACE_THROW (CORBA::NO_IMPLEMENT ());
-}
-
-
-//////////////////////////////////////////////////////////////////
-// Component Servant Glue code implementation
-//////////////////////////////////////////////////////////////////
-
-CIAO_GLUE_BasicSP::BMDisplay_Servant::BMDisplay_Servant (BasicSP::CCM_BMDisplay_ptr exe,
- ::Components::CCMHome_ptr h,
- ::CIAO::Session_Container *c)
- : executor_ (BasicSP::CCM_BMDisplay::_duplicate (exe)),
- container_ (c)
-{
- this->context_ = new CIAO_GLUE_BasicSP::BMDisplay_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_CATCHANY
- {
- // @@ Ignore any exceptions? What happens if
- // set_session_context throws an CCMException?
- }
- ACE_ENDTRY;
-}
-
-CIAO_GLUE_BasicSP::BMDisplay_Servant::~BMDisplay_Servant (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
- {
- // @@ Ignore any exceptions? What happens if
- // set_session_context throws an CCMException?
- }
- ACE_ENDTRY;
- this->context_->_remove_ref ();
-}
-
-// Operations for provides interfaces.
-
-// Operations for consumers interfaces.
-
-// EventConsumer Glue Code implementation
-// Inherit from ::Compopnents::EventBConsumerBase
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant::push_event (::Components::EventBase *ev
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- ::Components::BadEventType))
-{
- BasicSP::DataAvailable_var ev_type = BasicSP::DataAvailable::_downcast (ev);
- if (ev_type != 0)
- {
- this->push_DataAvailable (ev_type.in ()
- ACE_ENV_ARG_PARAMETER);
- return;
- }
-
- // @@ This include the case when we receive a parent eventtype of [eventtype]
-
- ACE_THROW (::Components::BadEventType ());
-}
-
-// get_component implementation.
-BasicSP::DataAvailableConsumer_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_consumer_data_ready (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- if (CORBA::is_nil (this->consumes_data_ready_.in ()))
- {
- CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant *svt =
- new CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant (this->executor_.in (),
- this->context_);
- PortableServer::ServantBase_var safe_servant (svt);
-
- CORBA::Object_var obj = this->container_->install_servant (svt
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- BasicSP::DataAvailableConsumer_var eco
- = BasicSP::DataAvailableConsumer::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- this->consumes_data_ready_ = eco;
- }
-
- return BasicSP::DataAvailableConsumer::_duplicate (this->consumes_data_ready_.in ());
-}
-
-// Operations for Navigation interface
-CORBA::Object_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::provide_facet (const char * name
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException ,
- Components::InvalidName))
-{
- ACE_UNUSED_ARG (name);
- ACE_THROW_RETURN (::Components::InvalidName (), 0);
-}
-
-::Components::FacetDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_facets (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::FacetDescriptions_var collection
- = new ::Components::FacetDescriptions (0); // #99 = number of all provided
- // facets including those inherited
- // from parent component(s).
- return collection._retn ();
-
-}
-
-::Components::FacetDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_named_facets (const Components::NameList & names
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- ACE_UNUSED_ARG (names);
- ACE_THROW_RETURN (::Components::InvalidName (), 0);
-}
-
-CORBA::Boolean
-CIAO_GLUE_BasicSP::BMDisplay_Servant::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 (object_ref
- ACE_ENV_ARG_PARAMETER);
-}
-
-// Operations for Receptacles interface
-::Components::Cookie *
-CIAO_GLUE_BasicSP::BMDisplay_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))
-{
- // @@ We can omit this if clause if there's no receptacle in this component.
- if (name == 0)
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-
- if (ACE_OS_String::strcmp (name, "comp_data") == 0)
- {
- BasicSP::ReadData_var _ciao_conn =
- BasicSP::ReadData::_narrow (connection
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- if (CORBA::is_nil (_ciao_conn.in ()))
- ACE_THROW_RETURN (::Components::InvalidConnection (), 0);
-
- this->connect_comp_data (_ciao_conn.in ()
- ACE_ENV_ARG_PARAMETER);
- return 0;
- }
-
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-CORBA::Object_ptr
-CIAO_GLUE_BasicSP::BMDisplay_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))
-{
- ACE_UNUSED_ARG (ck);
- // @@ We can omit this if clause if there's no receptacle in this component.
- if (name == 0)
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-
- if (ACE_OS_String::strcmp (name, "comp_data") == 0)
- return this->disconnect_comp_data (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-::Components::ConnectionDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_connections (const char * name
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- // @@ We can omit this if clause if there's no receptacle in this component.
- if (name == 0)
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-
- if (ACE_OS_String::strcmp (name, "comp_data") == 0)
- {
- ::Components::ConnectionDescriptions_var retv
- = new ::Components::ConnectionDescriptions;
- retv->length (1);
-
- ::Components::ConnectionDescription_var x
- = new OBV_Components::ConnectionDescription;
- x ->ck (0);
- x ->objref (this->get_connection_comp_data (ACE_ENV_SINGLE_ARG_PARAMETER));
- ACE_CHECK_RETURN (0);
-
- // retv[0] = x._retn ();
-
- return retv._retn ();
- }
-
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-::Components::ReceptacleDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_receptacles (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::ReceptacleDescriptions_var retv =
- new ::Components::ReceptacleDescriptions (1); // #99 is number of receptacles
- // this component has.
- retv->length (1);
- CORBA::ULong i = 0;
-
- retv[i] = new OBV_Components::ReceptacleDescription;
-
- retv[i]->Name ((const char *) "comp_data");
- retv[i]->type_id ((const char *) "IDL:BasicSP/ReadData:1.0");
- retv[i]->is_multiple (0);
- retv[i]->connections (*this->get_connections ("comp_data"
- ACE_ENV_ARG_PARAMETER));
- return retv._retn ();
-}
-
-::Components::ReceptacleDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_named_receptacles (const Components::NameList & names
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- ::Components::ReceptacleDescriptions_var retv =
- new ::Components::ReceptacleDescriptions (names.length ());
- retv->length (names.length ());
-
- CORBA::ULong i = 0;
- for (; i < names.length (); ++i)
- {
- retv[i] = new ::OBV_Components::ReceptacleDescription;
- if (ACE_OS_String::strcmp (names[i].in (), "comp_data") == 0)
- {
- retv[i]->Name ((const char *) "comp_data");
- retv[i]->type_id ((const char *) "IDL:BasicSP/ReadData:1.0");
- retv[i]->is_multiple (0);
- retv[i]->connections (*this->get_connections ("comp_data"
- ACE_ENV_ARG_PARAMETER));
- }
- else
- ACE_THROW_RETURN (::Components::InvalidName (), 0);
- }
- return retv._retn ();
-}
-
-// Operations for Events interface
-::Components::EventConsumerBase_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_consumer (const char * sink_name
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- // @@ We can omit this if clause if there's no event sinks in this component.
- if (sink_name == 0)
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-
- if (ACE_OS_String::strcmp (sink_name, "data_ready") == 0)
- return this->get_consumer_data_ready (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-::Components::Cookie *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::subscribe (const char * ,
- Components::EventConsumerBase_ptr
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName,
- Components::InvalidConnection,
- Components::ExceededConnectionLimit))
-{
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-::Components::EventConsumerBase_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::unsubscribe (const char * ,
- Components::Cookie *
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName,
- Components::InvalidConnection))
-{
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::connect_consumer (const char * ,
- Components::EventConsumerBase_ptr
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName,
- Components::AlreadyConnected,
- Components::InvalidConnection))
-{
- ACE_THROW (Components::InvalidName ());
-}
-
-::Components::EventConsumerBase_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::disconnect_consumer (const char *
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName,
- Components::NoConnection))
-{
- ACE_THROW_RETURN (Components::InvalidName (), 0);
-}
-
-::Components::ConsumerDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_consumers (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::ConsumerDescriptions_var retv =
- new ::Components::ConsumerDescriptions (1); // #99 is the number of consumers
- // this component has.
- retv->length (1);
-
- CORBA::ULong i = 0;
- retv[i] = new OBV_Components::ConsumerDescription;
- retv[i]->Name ("data_ready");
- retv[i]->type_id ("IDL:BasicSP/DataAvailableConsumer:1.0");
- BasicSP::DataAvailableConsumer_var c
- = this->get_consumer_data_ready (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- retv[i]->consumer (c.in ());
-
- return retv._retn ();
-}
-
-::Components::ConsumerDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_named_consumers (const Components::NameList & names
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- ::Components::ConsumerDescriptions_var retv =
- new ::Components::ConsumerDescriptions (names.length ());
- retv->length (names.length ());
-
- CORBA::ULong i = 0;
- for (; i < names.length (); ++i)
- {
- retv[i] = new OBV_Components::ConsumerDescription;
-
- if (ACE_OS_String::strcmp (names[i].in (), "data_ready") == 0)
- {
- retv[i]->Name ("data_ready");
- retv[i]->type_id ("IDL:BasicSP/DataAvailableConsumer:1.0");
- BasicSP::DataAvailableConsumer_var c =
- this->get_consumer_data_ready (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- retv[i]->consumer (c.in ());
- }
- else
- ACE_THROW_RETURN (::Components::InvalidName (), 0);
- }
- return retv._retn ();
-}
-
-::Components::EmitterDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_emitters (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::EmitterDescriptions_var retv =
- new ::Components::EmitterDescriptions (0); // #99 is the number of emitters
- // this component has.
- return retv._retn ();
-}
-
-::Components::EmitterDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_named_emitters (const Components::NameList & names
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- ::Components::EmitterDescriptions_var retv =
- new ::Components::EmitterDescriptions (names.length ());
- retv->length (names.length ());
-
- CORBA::ULong i = 0;
- for (; i < names.length (); ++i)
- {
- ACE_THROW_RETURN (::Components::InvalidName (), 0);
- }
- return retv._retn ();
-}
-
-::Components::PublisherDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_publishers (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // @@ to-do
-
- // Need to add interfaces in the Context class to gather the information.
- // Or we can just relay it to the Context object.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
-::Components::PublisherDescriptions *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_named_publishers (const Components::NameList & names
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidName))
-{
- ACE_UNUSED_ARG (names);
- // @@ to-do
-
- // Need to add interfaces in the Context class to gather the information.
- // Or we can just relay it to the Context object.
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
-// Operations for CCMObject interface
-::CORBA::IRObject_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_component_def (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // @@ to-do: Connect to an IfR?
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
-::Components::CCMHome_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_ccm_home (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return this->context_->get_CCM_home (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-::Components::PrimaryKeyBase *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_primary_key (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::NoKeyAvailable))
-{
- // This is a keyless component.
- ACE_THROW_RETURN (::Components::NoKeyAvailable (), 0);
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::configuration_complete (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::InvalidConfiguration))
-{
- // @@ to-do
- // No-op. Don't know how to pass this info to monolithic executor.
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::remove (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::RemoveFailure))
-{
- // @@ to-do
- // Need to figure out what to do here. E.g., tear down the all the connections
- // this component has?
-}
-
-::Components::ComponentPortDescription *
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_all_ports (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::ComponentPortDescription_var retv =
- new OBV_Components::ComponentPortDescription;
-
- ::Components::FacetDescriptions_var facets_desc
- = this->get_all_facets (ACE_ENV_SINGLE_ARG_PARAMETER);
- ::Components::ReceptacleDescriptions_var receptacle_desc
- = get_all_receptacles (ACE_ENV_SINGLE_ARG_PARAMETER);
- ::Components::ConsumerDescriptions_var consumer_desc
- = this->get_all_consumers (ACE_ENV_SINGLE_ARG_PARAMETER);
- ::Components::EmitterDescriptions_var emitter_desc
- = this->get_all_emitters (ACE_ENV_SINGLE_ARG_PARAMETER);
- ::Components::PublisherDescriptions_var publisher_desc
- = this->get_all_publishers (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- 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();
-}
-
-// get_component implementation.
-CORBA::Object_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::_get_component (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ::Components::SessionContext_var sc =
- ::Components::SessionContext::_narrow (this->context_);
-
- if (! CORBA::is_nil(sc.in ()))
- return sc->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- // @@ Do we need to try the following case here? We are afterall implementing
- // a session component here.
- ::Components::EntityContext_var ec =
- ::Components::EntityContext::_narrow (this->context_);
-
- if (! CORBA::is_nil(ec.in ()))
- return ec->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::_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);
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::_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);
-}
-
- void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::connect_comp_data (BasicSP::ReadData_ptr c
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- ::Components::AlreadyConnected,
- ::Components::InvalidConnection))
-{
- this->context_->connect_comp_data (c
- ACE_ENV_ARG_PARAMETER);
-}
-
- BasicSP::ReadData_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::disconnect_comp_data (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- ::Components::NoConnection))
-{
- return this->context_->disconnect_comp_data (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-BasicSP::ReadData_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::get_connection_comp_data (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return this->context_->get_connection_comp_data (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-// Constructor and destructor.
-
-CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant::DataAvailableConsumer_data_ready_Servant
-(BasicSP::CCM_BMDisplay_ptr executor,
- BasicSP::CCM_BMDisplay_Context_ptr c)
- : executor_ (BasicSP::CCM_BMDisplay::_duplicate (executor)),
- ctx_ (BasicSP::CCM_BMDisplay_Context::_duplicate (c))
-{
-}
-
-
-CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant::~DataAvailableConsumer_data_ready_Servant ()
-{
-}
-
- CORBA::Object_ptr
-CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant::_get_component (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return this->ctx_->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
- void
-CIAO_GLUE_BasicSP::BMDisplay_Servant::DataAvailableConsumer_data_ready_Servant::push_DataAvailable
-(BasicSP::DataAvailable *evt
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- this->executor_->push_data_ready (evt
- ACE_ENV_ARG_PARAMETER);
-}
-
-
-//////////////////////////////////////////////////////////////////
-// Component Home Glue code implementation
-//////////////////////////////////////////////////////////////////
-
-BasicSP::BMDisplay_ptr
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::_ciao_activate_component (BasicSP::CCM_BMDisplay_ptr exe
- ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- CORBA::Object_var hobj
- = this->container_->get_objref (this
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- ::Components::CCMHome_var home
- = ::Components::CCMHome::_narrow (hobj.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- CIAO_GLUE_BasicSP::BMDisplay_Servant *svt =
- new CIAO_GLUE_BasicSP::BMDisplay_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 (0);
-
- svt->_ciao_activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- BasicSP::BMDisplay_var ho
- = BasicSP::BMDisplay::_narrow (objref.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- if (this->component_map_.bind (oid.in (), svt) == 0)
- {
- // @@ what should happen if bind fail?
- safe._retn ();
- }
- return ho._retn ();
-}
-
-void
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::_ciao_passivate_component (BasicSP::BMDisplay_ptr comp
- ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::ObjectId_var oid;
-
- this->container_->uninstall_component (comp,
- oid.out ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- CIAO_GLUE_BasicSP::BMDisplay_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;
- }
- // What happen if unbind failed?
-
-}
-
-// Operations for Implicit Home interface
-BasicSP::BMDisplay_ptr
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::create (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::CreateFailure))
-{
- if (this->executor_.in () == 0)
- ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
-
- Components::EnterpriseComponent_var _ciao_ec =
- this->executor_->create (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- BasicSP::CCM_BMDisplay_var _ciao_comp
- = BasicSP::CCM_BMDisplay::_narrow (_ciao_ec.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return this->_ciao_activate_component (_ciao_comp.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-// Operations for CCMHome interface
-void
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::remove_component (Components::CCMObject_ptr comp
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::RemoveFailure))
-{
- BasicSP::BMDisplay_var _ciao_comp
- = BasicSP::BMDisplay::_narrow (comp
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (CORBA::is_nil (_ciao_comp.in ()))
- ACE_THROW (CORBA::INTERNAL ()); // What is the right exception to throw here?
-
- // @@ It seems to me that we need to make sure this is a component
- // generated by this home before calling remove on this component.
- _ciao_comp->remove (ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
-
- // Removing the object reference? get the servant from the POA with
- // the objref, and call remove() on the component, deactivate the
- // component, and then remove-ref the servant?
- this->_ciao_passivate_component (_ciao_comp.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::BMDisplayHome_Servant (BasicSP::CCM_BMDisplayHome_ptr exe,
- CIAO::Session_Container *c)
- : executor_ (BasicSP::CCM_BMDisplayHome::_duplicate (exe)),
- container_ (c)
-{
-}
-
-
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::~BMDisplayHome_Servant (void)
-{
-}
-
-// Operations for KeylessHome interface
- ::Components::CCMObject_ptr
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::create_component (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Components::CreateFailure))
-{
- // Simply forward to the create method.
- return this->create (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-// Operations for CCMHome interface
- ::CORBA::IRObject_ptr
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::get_component_def (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // @@ TO-DO. Contact IfR?
-
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
-CORBA::IRObject_ptr
-CIAO_GLUE_BasicSP::BMDisplayHome_Servant::get_home_def (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // @@ TO-DO. Contact IfR?
-
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
-}
-
-
-extern "C" BMDISPLAY_SVNT_Export ::PortableServer::Servant
-createBMDisplayHome_Servant (::Components::HomeExecutorBase_ptr p,
- CIAO::Session_Container *c
- ACE_ENV_ARG_DECL)
-{
- if (p == 0)
- return 0;
-
- BasicSP::CCM_BMDisplayHome_var x
- = BasicSP::CCM_BMDisplayHome::_narrow (p
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- if (CORBA::is_nil (x.in ()))
- return 0;
-
- return new CIAO_GLUE_BasicSP::BMDisplayHome_Servant (x.in (),
- c);
-}