summaryrefslogtreecommitdiff
path: root/TAO/CIAO/examples
diff options
context:
space:
mode:
authoredwardgt <edwardgt@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-13 01:26:22 +0000
committeredwardgt <edwardgt@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-13 01:26:22 +0000
commit5c809369fbf84607923cecbeb675439fd81ce903 (patch)
tree9989de6e8016193afc7a95109e14efd71a2d56f7 /TAO/CIAO/examples
parent45ee674cec2d62948483fd68758d2b184b6a63e8 (diff)
downloadATCD-5c809369fbf84607923cecbeb675439fd81ce903.tar.gz
ChangeLogTag: Tue Aug 12 20:18:23 2003 George Edwards <g.edwards@vanderbilt.edu>
Diffstat (limited to 'TAO/CIAO/examples')
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl2
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp212
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h55
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl2
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp214
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h57
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/BasicSP.idl210
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC.idl2
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp216
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h55
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl2
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl5
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp240
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h102
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp111
-rw-r--r--TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h67
16 files changed, 994 insertions, 558 deletions
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl
index 60cd4978f23..642204a93b2 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl
@@ -9,7 +9,7 @@ module BasicSP
uses ReadData datain;
publishes DataAvailable out_avail;
consumes DataAvailable in_avail;
- uses RTEventChannel event_channel;
+ uses RtecEventChannelAdmin::EventChannel event_channel;
};
home BMClosedEDHome manages BMClosedED
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp
index b27c29fc434..c26624cc04f 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp
@@ -86,12 +86,19 @@ namespace CIAO_GLUE_BasicSP
BMClosedED_Servant *sv)
: home_ (::Components::CCMHome::_duplicate (home)),
container_ (c),
- servant_ (sv)
+ servant_ (sv),
+ // START new event code
+ ciao_proxy_out_avail_consumer_ (RtecEventChannelAdmin::ProxyPushConsumer::_nil ())
+ // END new
{
}
BMClosedED_Context::~BMClosedED_Context (void)
{
+ // START new event code
+ this->ciao_uses_event_channel_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
}
// Operations from ::Components::CCMContext.
@@ -250,17 +257,17 @@ namespace CIAO_GLUE_BasicSP
ACE_THROW_SPEC ((CORBA::SystemException))
{
- // NEW
+ // START new event code
RtecEventComm::EventSet events (1);
events.length (1);
events[0].header.source = ACE_ES_EVENT_SOURCE_ANY + 3;
events[0].header.type = ACE_ES_EVENT_UNDEFINED + 2;
- ::Components::EventBase * ev_base = ev;
+ Components::EventBase * any_event = ev;
ev->_add_ref ();
- events[0].data.any_value <<= ev_base;
- ciao_proxy_consumer_->push (events ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- // END NEW
+ events[0].data.any_value <<= any_event;
+ ciao_proxy_out_avail_consumer_->push (events ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
/*
ACE_Active_Map_Manager<::BasicSP::DataAvailableConsumer_var>::iterator end =
@@ -295,35 +302,15 @@ namespace CIAO_GLUE_BasicSP
::Components::ExceededConnectionLimit))
{
- // NEW
- char * argv[1] = { "BMClosedED_exec" };
- int argc = sizeof (argv) / sizeof (argv[0]);
- CORBA::ORB_var orb = CORBA::ORB_init (argc, argv ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (CORBA::is_nil (c))
+ {
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+ }
- if (CORBA::is_nil (this->ciao_proxy_consumer_.in ()))
- {
- ::CORBA::Object_var me =
- this->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
+ if (CORBA::is_nil (this->ciao_proxy_out_avail_consumer_.in ()))
+ this->connect_event_supplier ();
+ return this->connect_event_consumer (c);
- CORBA::String_var ior = orb->object_to_string
- (me.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->ciao_uses_event_channel_->connect_supplier
- ("DataAvailable", "out_avail", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
-
- CORBA::String_var ior = orb->object_to_string (c ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- ciao_uses_event_channel_->connect_consumer
- ("DataAvailable", "data_ready", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- return 0;
- // END NEW
/*
if (CORBA::is_nil (c))
@@ -344,6 +331,95 @@ namespace CIAO_GLUE_BasicSP
*/
}
+ void
+ BMClosedED_Context::connect_event_supplier ()
+ {
+
+ // ACE_DEBUG ((LM_DEBUG, "BMDevice_Context::connect_event_supplier\n"));
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
+ this->ciao_uses_event_channel_->for_suppliers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ this->ciao_proxy_out_avail_consumer_ =
+ supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register supplier servant
+ MyImpl::RTEventServiceSupplier_impl * supplier_servant;
+ ACE_NEW (supplier_servant,
+ MyImpl::RTEventServiceSupplier_impl (orb.in ()));
+ RtecEventComm::PushSupplier_var push_supplier =
+ supplier_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_SupplierQOS_Factory qos;
+ qos.insert (ACE_ES_EVENT_SOURCE_ANY + 3,
+ ACE_ES_EVENT_UNDEFINED + 2,
+ 0,
+ 1);
+
+ this->ciao_proxy_out_avail_consumer_->connect_push_supplier (push_supplier.in (),
+ qos.get_SupplierQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+ ::Components::Cookie *
+ BMClosedED_Context::connect_event_consumer (
+ ::BasicSP::DataAvailableConsumer_ptr c)
+ {
+
+ // ACE_DEBUG ((LM_DEBUG, "EC_Context::connect_event_consumer\n"));
+
+ // @@ Bala, am I reference counting parameter 'c' correctly?
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ ::BasicSP::DataAvailableConsumer_var dup =
+ ::BasicSP::DataAvailableConsumer::_duplicate (c);
+
+ RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
+ this->ciao_uses_event_channel_->for_consumers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier =
+ consumer_admin->obtain_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register consumer servant
+ MyImpl::RTEventServiceConsumer_impl * consumer_servant;
+ ACE_NEW_RETURN (consumer_servant,
+ MyImpl::RTEventServiceConsumer_impl (orb.in (), dup.in ()),
+ 0);
+ RtecEventComm::PushConsumer_var push_consumer =
+ consumer_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_ConsumerQOS_Factory qos;
+ qos.start_logical_and_group (2);
+ qos.insert_type (ACE_ES_EVENT_UNDEFINED + 2,
+ 0);
+ qos.insert_source (ACE_ES_EVENT_SOURCE_ANY + 3,
+ 0);
+ proxy_supplier->connect_push_consumer (push_consumer.in (),
+ qos.get_ConsumerQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ dup._retn ();
+
+ ::Components::Cookie * return_cookie;
+ ACE_NEW_RETURN (return_cookie,
+ ::CIAO::Object_Reference_Cookie (push_consumer.in ()),
+ 0);
+ return return_cookie;
+ }
+
::BasicSP::DataAvailableConsumer_ptr
BMClosedED_Context::unsubscribe_out_avail (
::Components::Cookie *ck
@@ -353,6 +429,30 @@ namespace CIAO_GLUE_BasicSP
::Components::InvalidConnection))
{
+ CORBA::Object_var obj = CORBA::Object::_nil ();
+ ::BasicSP::DataAvailableConsumer_var return_consumer;
+
+ if (ck == 0 || ::CIAO::Object_Reference_Cookie::extract (ck, obj.out ()) == -1)
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::DataAvailableConsumer::_nil ());
+ }
+
+ RtecEventComm::PushConsumer_var push_consumer =
+ ::RtecEventComm::PushConsumer::_narrow (obj.in ());
+
+ if (CORBA::is_nil (push_consumer.in ()))
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::DataAvailableConsumer::_nil ());
+ }
+
+ push_consumer->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // @@ Bala, what should I return here?
return ::BasicSP::DataAvailableConsumer::_nil ();
/*
@@ -377,27 +477,18 @@ namespace CIAO_GLUE_BasicSP
*/
}
- // NEW
- void
- BMClosedED_Context::connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer)
- {
- ciao_proxy_consumer_ = proxy_consumer;
- }
- // END NEW
-
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMClosedED_Context::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return ::BasicSP::RTEventChannel::_duplicate (
+ return ::RtecEventChannelAdmin::EventChannel::_duplicate (
this->ciao_uses_event_channel_.in ());
}
void
BMClosedED_Context::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -415,10 +506,10 @@ namespace CIAO_GLUE_BasicSP
}
this->ciao_uses_event_channel_ =
- ::BasicSP::RTEventChannel::_duplicate (c);
+ ::RtecEventChannelAdmin::EventChannel::_duplicate (c);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMClosedED_Context::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -429,7 +520,7 @@ namespace CIAO_GLUE_BasicSP
{
ACE_THROW_RETURN (
::Components::NoConnection (),
- ::BasicSP::RTEventChannel::_nil ());
+ ::RtecEventChannelAdmin::EventChannel::_nil ());
}
return this->ciao_uses_event_channel_._retn ();
@@ -679,7 +770,7 @@ namespace CIAO_GLUE_BasicSP
void
BMClosedED_Servant::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -691,7 +782,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMClosedED_Servant::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -702,7 +793,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_SINGLE_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMClosedED_Servant::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
@@ -823,8 +914,8 @@ namespace CIAO_GLUE_BasicSP
if (ACE_OS::strcmp (name, "event_channel") == 0)
{
- ::BasicSP::RTEventChannel_var _ciao_conn =
- ::BasicSP::RTEventChannel::_narrow (
+ ::RtecEventChannelAdmin::EventChannel_var _ciao_conn =
+ ::RtecEventChannelAdmin::EventChannel::_narrow (
connection
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
@@ -913,19 +1004,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- void
- BMClosedED_Servant::connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName))
- {
- this->context_->connect_proxy_consumer (proxy_consumer);
- }
- // END NEW
-
::Components::EventConsumerBase_ptr
BMClosedED_Servant::get_consumer (
const char *sink_name
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h
index 3e3daf15b4c..7c8f398b333 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h
@@ -28,12 +28,12 @@
#include "ciao/Container_Base.h"
#include "tao/LocalObject.h"
#include "tao/PortableServer/Key_Adapters.h"
-#include "ace/Active_Map_Manager_T.h"
+// #include "ace/Active_Map_Manager_T.h"
-//NEW
-#include "orbsvcs/RtecEventChannelAdminC.h"
-#include "Event_Utilities.h"
-// END NEW
+// START new event code
+#include "../RTEventService/RTEventService_exec.h"
+#include "tao/ORB_Core.h"
+// END new event code
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -152,7 +152,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -194,37 +194,40 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::NoConnection));
- // NEW
+ // START new event code
+ ::Components::Cookie *
+ connect_event_consumer (
+ ::BasicSP::DataAvailableConsumer_ptr c);
+
void
- connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer);
- // END NEW
+ connect_event_supplier ();
+ // END new
protected:
- // NEW
- RtecEventChannelAdmin::ProxyPushConsumer_var
- ciao_proxy_consumer_;
- // END NEW
-
// Simplex datain connection.
::BasicSP::ReadData_var
ciao_uses_datain_;
+ // START new event code
+ RtecEventChannelAdmin::ProxyPushConsumer_var
+ ciao_proxy_out_avail_consumer_;
+ // END new
+
/*
ACE_Active_Map_Manager<
::BasicSP::DataAvailableConsumer_var>
@@ -232,7 +235,7 @@ namespace CIAO_GLUE_BasicSP
*/
// Simplex event_channel connection.
- ::BasicSP::RTEventChannel_var
+ ::RtecEventChannelAdmin::EventChannel_var
ciao_uses_event_channel_;
::Components::CCMHome_var
@@ -347,19 +350,19 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -442,16 +445,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- virtual void
- connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL_WITH_DEFAULTS)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName));
- // END NEW
-
virtual ::Components::EventConsumerBase_ptr
get_consumer (
const char *sink_name
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl
index 3732aa091ad..071a89cc82a 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl
@@ -20,7 +20,7 @@ module BasicSP
provides ReadData data_read;
publishes DataAvailable data_available;
consumes TimeOut timeout;
- uses RTEventChannel event_channel;
+ uses RtecEventChannelAdmin::EventChannel event_channel;
};
home BMDeviceHome manages BMDevice
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp
index be9d6180a01..38111d83a41 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp
@@ -86,12 +86,19 @@ namespace CIAO_GLUE_BasicSP
BMDevice_Servant *sv)
: home_ (::Components::CCMHome::_duplicate (home)),
container_ (c),
- servant_ (sv)
+ servant_ (sv),
+ // START new event code
+ ciao_proxy_data_available_consumer_ (RtecEventChannelAdmin::ProxyPushConsumer::_nil ())
+ // END new
{
}
BMDevice_Context::~BMDevice_Context (void)
{
+ // START new event code
+ this->ciao_uses_event_channel_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
}
// Operations from ::Components::CCMContext.
@@ -201,17 +208,17 @@ namespace CIAO_GLUE_BasicSP
ACE_THROW_SPEC ((CORBA::SystemException))
{
- // NEW
+ // START new event code
RtecEventComm::EventSet events (1);
events.length (1);
events[0].header.source = ACE_ES_EVENT_SOURCE_ANY + 2;
events[0].header.type = ACE_ES_EVENT_UNDEFINED + 2;
- ::Components::EventBase * ev_base = ev;
+ Components::EventBase * any_event = ev;
ev->_add_ref ();
- events[0].data.any_value <<= ev_base;
- ciao_proxy_consumer_->push (events ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- // END NEW
+ events[0].data.any_value <<= any_event;
+ ciao_proxy_data_available_consumer_->push (events ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
/*
ACE_Active_Map_Manager<::BasicSP::DataAvailableConsumer_var>::iterator end =
@@ -246,35 +253,16 @@ namespace CIAO_GLUE_BasicSP
::Components::ExceededConnectionLimit))
{
- // NEW
- char * argv[1] = { "BMDevice_exec" };
- int argc = sizeof (argv) / sizeof (argv[0]);
- CORBA::ORB_var orb = CORBA::ORB_init (argc, argv ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (CORBA::is_nil (this->ciao_proxy_consumer_.in ()))
- {
- ::CORBA::Object_var me =
- this->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- CORBA::String_var ior = orb->object_to_string
- (me.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ // ACE_DEBUG ((LM_DEBUG, "BMDevice_Context::subscribe_data_available\n"));
- this->ciao_uses_event_channel_->connect_supplier
- ("DataAvailable", "data_available", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
-
- CORBA::String_var ior = orb->object_to_string (c ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- ciao_uses_event_channel_->connect_consumer
- ("DataAvailable", "in_avail", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (CORBA::is_nil (c))
+ {
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+ }
- return 0;
- // END NEW
+ if (CORBA::is_nil (this->ciao_proxy_data_available_consumer_.in ()))
+ this->connect_event_supplier ();
+ return this->connect_event_consumer (c);
/*
if (CORBA::is_nil (c))
@@ -295,6 +283,95 @@ namespace CIAO_GLUE_BasicSP
*/
}
+ void
+ BMDevice_Context::connect_event_supplier ()
+ {
+
+ // ACE_DEBUG ((LM_DEBUG, "BMDevice_Context::connect_event_supplier\n"));
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
+ this->ciao_uses_event_channel_->for_suppliers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ this->ciao_proxy_data_available_consumer_ =
+ supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register supplier servant
+ MyImpl::RTEventServiceSupplier_impl * supplier_servant;
+ ACE_NEW (supplier_servant,
+ MyImpl::RTEventServiceSupplier_impl (orb.in ()));
+ RtecEventComm::PushSupplier_var push_supplier =
+ supplier_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_SupplierQOS_Factory qos;
+ qos.insert (ACE_ES_EVENT_SOURCE_ANY + 2,
+ ACE_ES_EVENT_UNDEFINED + 2,
+ 0,
+ 1);
+
+ this->ciao_proxy_data_available_consumer_->connect_push_supplier (push_supplier.in (),
+ qos.get_SupplierQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+ ::Components::Cookie *
+ BMDevice_Context::connect_event_consumer (
+ ::BasicSP::DataAvailableConsumer_ptr c)
+ {
+
+ // ACE_DEBUG ((LM_DEBUG, "EC_Context::connect_event_consumer\n"));
+
+ // @@ Bala, am I reference counting parameter 'c' correctly?
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ ::BasicSP::DataAvailableConsumer_var dup =
+ ::BasicSP::DataAvailableConsumer::_duplicate (c);
+
+ RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
+ this->ciao_uses_event_channel_->for_consumers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier =
+ consumer_admin->obtain_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register consumer servant
+ MyImpl::RTEventServiceConsumer_impl * consumer_servant;
+ ACE_NEW_RETURN (consumer_servant,
+ MyImpl::RTEventServiceConsumer_impl (orb.in (), dup.in ()),
+ 0);
+ RtecEventComm::PushConsumer_var push_consumer =
+ consumer_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_ConsumerQOS_Factory qos;
+ qos.start_logical_and_group (2);
+ qos.insert_type (ACE_ES_EVENT_UNDEFINED + 2,
+ 0);
+ qos.insert_source (ACE_ES_EVENT_SOURCE_ANY + 2,
+ 0);
+ proxy_supplier->connect_push_consumer (push_consumer.in (),
+ qos.get_ConsumerQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ dup._retn ();
+
+ ::Components::Cookie * return_cookie;
+ ACE_NEW_RETURN (return_cookie,
+ ::CIAO::Object_Reference_Cookie (push_consumer.in ()),
+ 0);
+ return return_cookie;
+ }
+
::BasicSP::DataAvailableConsumer_ptr
BMDevice_Context::unsubscribe_data_available (
::Components::Cookie *ck
@@ -303,6 +380,31 @@ namespace CIAO_GLUE_BasicSP
::CORBA::SystemException,
::Components::InvalidConnection))
{
+
+ CORBA::Object_var obj = CORBA::Object::_nil ();
+ ::BasicSP::DataAvailableConsumer_var return_consumer;
+
+ if (ck == 0 || ::CIAO::Object_Reference_Cookie::extract (ck, obj.out ()) == -1)
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::DataAvailableConsumer::_nil ());
+ }
+
+ RtecEventComm::PushConsumer_var push_consumer =
+ ::RtecEventComm::PushConsumer::_narrow (obj.in ());
+
+ if (CORBA::is_nil (push_consumer.in ()))
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::DataAvailableConsumer::_nil ());
+ }
+
+ push_consumer->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // @@ Bala, what should I return here?
return ::BasicSP::DataAvailableConsumer::_nil ();
/*
@@ -327,27 +429,18 @@ namespace CIAO_GLUE_BasicSP
*/
}
- // NEW
- void
- BMDevice_Context::connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer)
- {
- ciao_proxy_consumer_ = proxy_consumer;
- }
- // END NEW
-
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMDevice_Context::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return ::BasicSP::RTEventChannel::_duplicate (
+ return ::RtecEventChannelAdmin::EventChannel::_duplicate (
this->ciao_uses_event_channel_.in ());
}
void
BMDevice_Context::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -365,10 +458,10 @@ namespace CIAO_GLUE_BasicSP
}
this->ciao_uses_event_channel_ =
- ::BasicSP::RTEventChannel::_duplicate (c);
+ ::RtecEventChannelAdmin::EventChannel::_duplicate (c);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMDevice_Context::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -379,7 +472,7 @@ namespace CIAO_GLUE_BasicSP
{
ACE_THROW_RETURN (
::Components::NoConnection (),
- ::BasicSP::RTEventChannel::_nil ());
+ ::RtecEventChannelAdmin::EventChannel::_nil ());
}
return this->ciao_uses_event_channel_._retn ();
@@ -595,7 +688,7 @@ namespace CIAO_GLUE_BasicSP
void
BMDevice_Servant::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -607,7 +700,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMDevice_Servant::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -618,7 +711,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_SINGLE_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
BMDevice_Servant::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
@@ -718,8 +811,8 @@ namespace CIAO_GLUE_BasicSP
if (ACE_OS::strcmp (name, "event_channel") == 0)
{
- ::BasicSP::RTEventChannel_var _ciao_conn =
- ::BasicSP::RTEventChannel::_narrow (
+ ::RtecEventChannelAdmin::EventChannel_var _ciao_conn =
+ ::RtecEventChannelAdmin::EventChannel::_narrow (
connection
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
@@ -802,19 +895,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- void
- BMDevice_Servant::connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName))
- {
- this->context_->connect_proxy_consumer (proxy_consumer);
- }
- // END NEW
-
::Components::EventConsumerBase_ptr
BMDevice_Servant::get_consumer (
const char *sink_name
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h
index 830e900d59c..f6e99a97e7c 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h
@@ -28,12 +28,12 @@
#include "ciao/Container_Base.h"
#include "tao/LocalObject.h"
#include "tao/PortableServer/Key_Adapters.h"
-#include "ace/Active_Map_Manager_T.h"
+// #include "ace/Active_Map_Manager_T.h"
-//NEW
-#include "orbsvcs/RtecEventChannelAdminC.h"
-#include "Event_Utilities.h"
-// END NEW
+// START new event code
+#include "../RTEventService/RTEventService_exec.h"
+#include "tao/ORB_Core.h"
+// END new event code
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -147,7 +147,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -173,43 +173,46 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::NoConnection));
- // NEW
+ // START new event code
+ ::Components::Cookie *
+ connect_event_consumer (
+ ::BasicSP::DataAvailableConsumer_ptr c);
+
void
- connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer);
- // END NEW
+ connect_event_supplier ();
+ // END new
protected:
- // NEW
+ // START new event code
RtecEventChannelAdmin::ProxyPushConsumer_var
- ciao_proxy_consumer_;
- // END NEW
+ ciao_proxy_data_available_consumer_;
+ // END new
- // OLD
- /*
+ // START old event code
+ /*
ACE_Active_Map_Manager<
::BasicSP::DataAvailableConsumer_var>
ciao_publishes_data_available_map_;
*/
- // END OLD
+ // END old
// Simplex event_channel connection.
- ::BasicSP::RTEventChannel_var
+ ::RtecEventChannelAdmin::EventChannel_var
ciao_uses_event_channel_;
::Components::CCMHome_var
@@ -305,19 +308,19 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -400,16 +403,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- virtual void
- connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL_WITH_DEFAULTS)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName));
- // END NEW
-
virtual ::Components::EventConsumerBase_ptr
get_consumer (
const char *sink_name
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BasicSP.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BasicSP.idl
index 5ea22ff5c99..8cbdc2967bc 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BasicSP.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/BasicSP.idl
@@ -13,6 +13,7 @@
#define CIAO_BASIC_SP_IDL
#include <Components.idl>
+#include <RtecEventChannelAdmin.idl>
// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO..
// #pragma prefix ""
@@ -34,18 +35,6 @@ module BasicSP
string get_data ();
};
- interface RTEventChannel
- {
- void connect_consumer (in string event_type,
- in string sink_name,
- in string consumer_oid);
-
- void connect_supplier (in string event_type,
- in string source_name,
- in string supplier_oid);
-
- };
-
/**
* @eventtype Events that represent timeouts
*/
@@ -58,4 +47,201 @@ module BasicSP
};
+/*module TimeBase
+{
+ typedef unsigned long long TimeT;
+};
+
+
+typedef sequence<octet> EventPayload;
+
+struct RtecEventData
+{
+ long pad1;
+
+ EventPayload payload;
+
+ any any_value;
+};
+
+module RtecEventComm
+{
+
+ typedef RtecEventData EventData;
+
+ typedef TimeBase::TimeT Time;
+
+ typedef long EventSourceID;
+
+ typedef long _EventType;
+
+ struct EventHeader
+ {
+ _EventType type;
+
+ EventSourceID source;
+
+ long ttl;
+
+ Time creation_time;
+
+ Time ec_recv_time;
+
+ Time ec_send_time;
+ };
+
+ struct Event
+ {
+ EventHeader header;
+
+ EventData data;
+ };
+
+ typedef sequence<Event> EventSet;
+
+ interface PushConsumer
+ {
+ oneway void push (in EventSet data);
+
+ void disconnect_push_consumer ();
+ };
+
+ interface PushSupplier
+ {
+ void disconnect_push_supplier ();
+ };
+
+};
+
+module RtecBase
+{
+
+ enum Dependency_Type_t
+ {
+ ONE_WAY_CALL,
+ TWO_WAY_CALL
+ };
+
+ typedef long handle_t;
+
+ struct Dependency_Info
+ {
+ Dependency_Type_t dependency_type;
+
+ long number_of_calls;
+
+ handle_t rt_info;
+ };
+
+};
+
+module RtecEventChannelAdmin
+{
+ exception AlreadyConnected {};
+
+ exception TypeError {};
+
+ struct Dependency
+ {
+ RtecEventComm::Event event;
+
+ RtecBase::handle_t rt_info;
+ };
+
+ typedef sequence<Dependency> DependencySet;
+
+ struct Publication
+ {
+ RtecEventComm::Event event;
+
+ RtecBase::Dependency_Info dependency_info;
+ };
+
+ typedef sequence<Publication> PublicationSet;
+
+ struct ConsumerQOS
+ {
+ DependencySet dependencies;
+
+ boolean is_gateway;
+ };
+
+ struct SupplierQOS
+ {
+ PublicationSet publications;
+
+ boolean is_gateway;
+ };
+
+ interface ProxyPushConsumer : RtecEventComm::PushConsumer
+ {
+ void connect_push_supplier (in RtecEventComm::PushSupplier push_supplier,
+ in SupplierQOS qos)
+ raises (AlreadyConnected);
+ };
+
+ interface ProxyPushSupplier : RtecEventComm::PushSupplier
+ {
+ void connect_push_consumer(in RtecEventComm::PushConsumer push_consumer,
+ in ConsumerQOS qos)
+ raises(AlreadyConnected, TypeError);
+
+ void suspend_connection ();
+
+ void resume_connection ();
+
+ };
+
+ interface ConsumerAdmin
+ {
+ ProxyPushSupplier obtain_push_supplier ();
+ };
+
+ interface SupplierAdmin
+ {
+ ProxyPushConsumer obtain_push_consumer ();
+ };
+
+ interface Observer
+ {
+ void update_consumer (in ConsumerQOS sub);
+
+ void update_supplier (in SupplierQOS pub);
+ };
+
+ typedef unsigned long Observer_Handle;
+
+ interface EventChannel
+ {
+
+ exception SYNCHRONIZATION_ERROR {};
+
+ exception CANT_APPEND_OBSERVER {};
+
+ exception CANT_REMOVE_OBSERVER {};
+
+ exception QOS_ERROR {};
+
+ exception SUBSCRIPTION_ERROR {};
+
+ exception CORRELATION_ERROR {};
+
+ exception DISPATCH_ERROR {};
+
+ ConsumerAdmin for_consumers ();
+
+ SupplierAdmin for_suppliers ();
+
+ void destroy ();
+
+ Observer_Handle append_observer (in Observer gw)
+ raises (SYNCHRONIZATION_ERROR,CANT_APPEND_OBSERVER);
+
+ void remove_observer (in Observer_Handle gw)
+ raises (SYNCHRONIZATION_ERROR,CANT_REMOVE_OBSERVER);
+ };
+
+};
+*/
+
#endif /*CIAO_BASIC_SP_IDL*/
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC.idl
index 5cd5a1a30e9..300ff2f33c2 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC.idl
@@ -24,7 +24,7 @@ module BasicSP
component EC supports trigger
{
publishes TimeOut timeout;
- uses RTEventChannel event_channel;
+ uses RtecEventChannelAdmin::EventChannel event_channel;
/// The attribute can be configured via the home or the
/// component property file.
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp
index 5175df61f35..330283166a9 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp
@@ -29,12 +29,19 @@ namespace CIAO_GLUE_BasicSP
EC_Servant *sv)
: home_ (::Components::CCMHome::_duplicate (home)),
container_ (c),
- servant_ (sv)
+ servant_ (sv),
+ // START new event code
+ ciao_proxy_timeout_consumer_ (RtecEventChannelAdmin::ProxyPushConsumer::_nil ())
+ // END new
{
}
EC_Context::~EC_Context (void)
{
+ // START new event code
+ this->ciao_uses_event_channel_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
}
// Operations from ::Components::CCMContext.
@@ -143,18 +150,17 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG, "EC_Context::push_timeout\n"));
- // NEW
+ // START new event code
RtecEventComm::EventSet events (1);
events.length (1);
events[0].header.source = ACE_ES_EVENT_SOURCE_ANY + 1;
events[0].header.type = ACE_ES_EVENT_UNDEFINED + 1;
- ::Components::EventBase * ev_base = ev;
+ Components::EventBase * any_event = ev;
ev->_add_ref ();
- events[0].data.any_value <<= ev_base;
- ciao_proxy_consumer_->push (events ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- // END NEW
+ events[0].data.any_value <<= any_event;
+ ciao_proxy_timeout_consumer_->push (events ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ // END new
/*
ACE_Active_Map_Manager<::BasicSP::TimeOutConsumer_var>::iterator end =
@@ -188,36 +194,17 @@ namespace CIAO_GLUE_BasicSP
::CORBA::SystemException,
::Components::ExceededConnectionLimit))
{
- ACE_DEBUG ((LM_DEBUG, "EC_Context::subscribe_timeout\n"));
- // NEW
- char * argv[1] = { "EC_exec" };
- int argc = sizeof (argv) / sizeof (argv[0]);
- CORBA::ORB_var orb = CORBA::ORB_init (argc, argv ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (CORBA::is_nil (this->ciao_proxy_consumer_.in ()))
- {
- ::CORBA::Object_var me =
- this->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
- CORBA::String_var ior = orb->object_to_string
- (me.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ ACE_DEBUG ((LM_DEBUG, "EC_Context::subscribe_timeout\n"));
- this->ciao_uses_event_channel_->connect_supplier
- ("TimeOut", "timeout", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
-
- CORBA::String_var ior = orb->object_to_string (c ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- ciao_uses_event_channel_->connect_consumer
- ("TimeOut", "timeout", ior.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (CORBA::is_nil (c))
+ {
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+ }
- return 0;
- // END NEW
+ if (CORBA::is_nil (this->ciao_proxy_timeout_consumer_.in ()))
+ this->connect_event_supplier ();
+ return this->connect_event_consumer (c);
/*
if (CORBA::is_nil (c))
@@ -238,6 +225,95 @@ namespace CIAO_GLUE_BasicSP
*/
}
+ void
+ EC_Context::connect_event_supplier ()
+ {
+
+ ACE_DEBUG ((LM_DEBUG, "EC_Context::connect_event_supplier\n"));
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
+ this->ciao_uses_event_channel_->for_suppliers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ this->ciao_proxy_timeout_consumer_ =
+ supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register supplier servant
+ MyImpl::RTEventServiceSupplier_impl * supplier_servant;
+ ACE_NEW (supplier_servant,
+ MyImpl::RTEventServiceSupplier_impl (orb.in ()));
+ RtecEventComm::PushSupplier_var push_supplier =
+ supplier_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_SupplierQOS_Factory qos;
+ qos.insert (ACE_ES_EVENT_SOURCE_ANY + 1,
+ ACE_ES_EVENT_UNDEFINED + 1,
+ 0,
+ 1);
+
+ this->ciao_proxy_timeout_consumer_->connect_push_supplier (push_supplier.in (),
+ qos.get_SupplierQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+ ::Components::Cookie *
+ EC_Context::connect_event_consumer (
+ ::BasicSP::TimeOutConsumer_ptr c)
+ {
+
+ ACE_DEBUG ((LM_DEBUG, "EC_Context::connect_event_consumer\n"));
+
+ // @@ Bala, am I reference counting parameter 'c' correctly?
+
+ // Get a reference to the ORB.
+ CORBA::ORB_var orb = this->container_->_ciao_the_ORB ();
+
+ ::BasicSP::TimeOutConsumer_var dup =
+ ::BasicSP::TimeOutConsumer::_duplicate (c);
+
+ RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
+ this->ciao_uses_event_channel_->for_consumers (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier =
+ consumer_admin->obtain_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Create and register consumer servant
+ MyImpl::RTEventServiceConsumer_impl * consumer_servant;
+ ACE_NEW_RETURN (consumer_servant,
+ MyImpl::RTEventServiceConsumer_impl (orb.in (), dup.in ()),
+ 0);
+ RtecEventComm::PushConsumer_var push_consumer =
+ consumer_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set QoS properties and connect
+ ACE_ConsumerQOS_Factory qos;
+ qos.start_logical_and_group (2);
+ qos.insert_type (ACE_ES_EVENT_UNDEFINED + 1,
+ 0);
+ qos.insert_source (ACE_ES_EVENT_SOURCE_ANY + 1,
+ 0);
+ proxy_supplier->connect_push_consumer (push_consumer.in (),
+ qos.get_ConsumerQOS ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ dup._retn ();
+
+ ::Components::Cookie * return_cookie;
+ ACE_NEW_RETURN (return_cookie,
+ ::CIAO::Object_Reference_Cookie (push_consumer.in ()),
+ 0);
+ return return_cookie;
+ }
+
::BasicSP::TimeOutConsumer_ptr
EC_Context::unsubscribe_timeout (
::Components::Cookie *ck
@@ -246,6 +322,31 @@ namespace CIAO_GLUE_BasicSP
::CORBA::SystemException,
::Components::InvalidConnection))
{
+
+ CORBA::Object_var obj = CORBA::Object::_nil ();
+ ::BasicSP::TimeOutConsumer_var return_consumer;
+
+ if (ck == 0 || ::CIAO::Object_Reference_Cookie::extract (ck, obj.out ()) == -1)
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::TimeOutConsumer::_nil ());
+ }
+
+ RtecEventComm::PushConsumer_var push_consumer =
+ ::RtecEventComm::PushConsumer::_narrow (obj.in ());
+
+ if (CORBA::is_nil (push_consumer.in ()))
+ {
+ ACE_THROW_RETURN (
+ ::Components::InvalidConnection (),
+ ::BasicSP::TimeOutConsumer::_nil ());
+ }
+
+ push_consumer->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // @@ Bala, what should I return here?
return ::BasicSP::TimeOutConsumer::_nil ();
/*
@@ -270,27 +371,18 @@ namespace CIAO_GLUE_BasicSP
*/
}
- // NEW
- void
- EC_Context::connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer)
- {
- ciao_proxy_consumer_ = proxy_consumer;
- }
- // END NEW
-
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
EC_Context::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- return ::BasicSP::RTEventChannel::_duplicate (
+ return ::RtecEventChannelAdmin::EventChannel::_duplicate (
this->ciao_uses_event_channel_.in ());
}
void
EC_Context::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -308,10 +400,10 @@ namespace CIAO_GLUE_BasicSP
}
this->ciao_uses_event_channel_ =
- ::BasicSP::RTEventChannel::_duplicate (c);
+ ::RtecEventChannelAdmin::EventChannel::_duplicate (c);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
EC_Context::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -322,7 +414,7 @@ namespace CIAO_GLUE_BasicSP
{
ACE_THROW_RETURN (
::Components::NoConnection (),
- ::BasicSP::RTEventChannel::_nil ());
+ ::RtecEventChannelAdmin::EventChannel::_nil ());
}
return this->ciao_uses_event_channel_._retn ();
@@ -410,7 +502,7 @@ namespace CIAO_GLUE_BasicSP
void
EC_Servant::connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
::CORBA::SystemException,
@@ -422,7 +514,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
EC_Servant::disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
@@ -433,7 +525,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_SINGLE_ARG_PARAMETER);
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
EC_Servant::get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
@@ -548,8 +640,8 @@ namespace CIAO_GLUE_BasicSP
if (ACE_OS::strcmp (name, "event_channel") == 0)
{
- ::BasicSP::RTEventChannel_var _ciao_conn =
- ::BasicSP::RTEventChannel::_narrow (
+ ::RtecEventChannelAdmin::EventChannel_var _ciao_conn =
+ ::RtecEventChannelAdmin::EventChannel::_narrow (
connection
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
@@ -718,20 +810,6 @@ namespace CIAO_GLUE_BasicSP
::Components::EventConsumerBase::_nil ());
}
- // NEW
- void
- EC_Servant::connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName))
- {
- ACE_DEBUG ((LM_DEBUG, "EC_Servant::connect_publisher\n"));
- this->context_->connect_proxy_consumer (proxy_consumer);
- }
- // END NEW
-
void
EC_Servant::connect_consumer (
const char *emitter_name,
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h
index 66bb912b0fc..7c3d79d5ab4 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h
@@ -28,12 +28,12 @@
#include "ciao/Container_Base.h"
#include "tao/LocalObject.h"
#include "tao/PortableServer/Key_Adapters.h"
-#include "ace/Active_Map_Manager_T.h"
+// #include "ace/Active_Map_Manager_T.h"
-//NEW
-#include "orbsvcs/RtecEventChannelAdminC.h"
-#include "Event_Utilities.h"
-// END NEW
+// START new event code
+#include "../RTEventService/RTEventService_exec.h"
+#include "tao/ORB_Core.h"
+// END new event code
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -113,7 +113,7 @@ namespace CIAO_GLUE_BasicSP
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -139,43 +139,46 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::NoConnection));
- // NEW
+ // START new event code
+ ::Components::Cookie *
+ connect_event_consumer (
+ ::BasicSP::TimeOutConsumer_ptr c);
+
void
- connect_proxy_consumer (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer);
- // END NEW
+ connect_event_supplier ();
+ // END new
protected:
- // NEW
+ // START new event code
RtecEventChannelAdmin::ProxyPushConsumer_var
- ciao_proxy_consumer_;
- // END NEW
+ ciao_proxy_timeout_consumer_;
+ // END new
- // OLD
+ // START old event code
/*
ACE_Active_Map_Manager<
::BasicSP::TimeOutConsumer_var>
ciao_publishes_timeout_map_;
*/
- // END OLD
+ // END old
// Simplex event_channel connection.
- ::BasicSP::RTEventChannel_var
+ ::RtecEventChannelAdmin::EventChannel_var
ciao_uses_event_channel_;
::Components::CCMHome_var
@@ -231,19 +234,19 @@ namespace CIAO_GLUE_BasicSP
virtual void
connect_event_channel (
- ::BasicSP::RTEventChannel_ptr c
+ ::RtecEventChannelAdmin::EventChannel_ptr c
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((
::CORBA::SystemException,
::Components::AlreadyConnected,
::Components::InvalidConnection));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
disconnect_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
get_connection_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -366,16 +369,6 @@ namespace CIAO_GLUE_BasicSP
::Components::InvalidName,
::Components::InvalidConnection));
- // NEW
- virtual void
- connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL_WITH_DEFAULTS)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName));
- // END NEW
-
virtual void
connect_consumer (
const char *emitter_name,
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl
index 53f578f07b6..c70b608ca4d 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl
@@ -20,7 +20,7 @@ module BasicSP
component RTEventService
{
- provides RTEventChannel rt_event_channel;
+ provides RtecEventChannelAdmin::EventChannel rt_event_channel;
};
home RTEventServiceHome manages RTEventService
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl
index b125b7058b0..9b16e368baf 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl
@@ -17,13 +17,10 @@ module BasicSP
{
/**
* @interface RTEventService_Exec
- *
- * The actual RTEventService executor inherits from both CCM_RTEventService
- * and session_component interfaces as a monolithic implementation.
*/
local interface RTEventService_Exec :
CCM_RTEventService,
- CCM_RTEventChannel,
+ RtecEventChannelAdmin::CCM_EventChannel,
Components::SessionComponent
{
};
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp
index 2d25405105b..fa891b5685a 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp
@@ -44,153 +44,66 @@ MyImpl::RTEventService_exec_impl::RTEventService_exec_impl ()
MyImpl::RTEventService_exec_impl::~RTEventService_exec_impl ()
{
-
+
}
-void MyImpl::RTEventService_exec_impl::connect_consumer (
- const char * event_type,
- const char * sink_name,
- const char * consumer_oid
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- ACE_DEBUG ((LM_DEBUG, "RTEventService_exec_impl::connect_consumer\n"));
-
- CORBA::Object_var obj = this->orb_->string_to_object (consumer_oid
- ACE_ENV_ARG_PARAMETER);
- Components::EventConsumerBase_var event_base =
- Components::EventConsumerBase::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
- if (CORBA::is_nil (event_base.in ()))
- ACE_ERROR ((LM_ERROR, "Nil event consumer\n"));
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
+::RtecEventChannelAdmin::ConsumerAdmin_ptr
+MyImpl::RTEventService_exec_impl::for_consumers (
+ACE_ENV_SINGLE_ARG_DECL)
+ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ::RtecEventChannelAdmin::ConsumerAdmin_ptr ret_val =
this->event_channel_->for_consumers (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
- RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier =
- consumer_admin->obtain_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Create and register consumer servant
- // @@ Bala, the consumer_servant is deactivated in the disconnect_push_consumer method, below
- RTEventServiceConsumer_impl * consumer_servant;
- ACE_NEW (consumer_servant, RTEventServiceConsumer_impl
- (orb_.in (), Components::EventConsumerBase::_duplicate (event_base.in ())));
- RtecEventComm::PushConsumer_var consumer = consumer_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Put reference to this PushConsumer in the map so we can disconnect later
- ACE_Active_Map_Manager_Key key;
- this->proxy_supplier_map_.bind (proxy_supplier.in (), key);
-
- // Set QoS properties and connect
- ACE_ConsumerQOS_Factory qos;
- CORBA::Long event_flag;
- CORBA::Long source_flag;
-
- // @@ Bala, let me know the right way to do this
- if (ACE_OS::strcmp (event_type, "TimeOut") == 0)
- event_flag = ACE_ES_EVENT_UNDEFINED + 1;
-
- if (ACE_OS::strcmp (event_type, "DataAvailable") == 0)
- event_flag = ACE_ES_EVENT_UNDEFINED + 2;
-
- if (ACE_OS::strcmp (sink_name, "timeout") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 1;
-
- if (ACE_OS::strcmp (sink_name, "in_avail") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 2;
-
- if (ACE_OS::strcmp (sink_name, "data_ready") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 3;
-
- qos.start_logical_and_group (2);
- qos.insert_type (event_flag,
- 0);
- qos.insert_source (source_flag,
- 0);
- proxy_supplier->connect_push_consumer (consumer.in (),
- qos.get_ConsumerQOS ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
+ return ret_val;
}
-void MyImpl::RTEventService_exec_impl::connect_supplier (
- const char * event_type,
- const char * source_name,
- const char * supplier_oid
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+::RtecEventChannelAdmin::SupplierAdmin_ptr
+MyImpl::RTEventService_exec_impl::for_suppliers (
+ACE_ENV_SINGLE_ARG_DECL)
+ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG, "RTEventService_exec_impl::connect_supplier\n"));
-
- RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
+ ::RtecEventChannelAdmin::SupplierAdmin_ptr ret_val =
this->event_channel_->for_suppliers (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
- RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer =
- supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Create and register supplier servant
- RTEventServiceSupplier_impl * supplier_servant;
- ACE_NEW (supplier_servant, RTEventServiceSupplier_impl (orb_.in ()));
- RtecEventComm::PushSupplier_var supplier = supplier_servant->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Set QoS properties and connect
- ACE_SupplierQOS_Factory qos;
- CORBA::Long event_flag;
- CORBA::Long source_flag;
-
- if (ACE_OS::strcmp (event_type, "TimeOut") == 0)
- event_flag = ACE_ES_EVENT_UNDEFINED + 1;
-
- if (ACE_OS::strcmp (event_type, "DataAvailable") == 0)
- event_flag = ACE_ES_EVENT_UNDEFINED + 2;
-
- if (ACE_OS::strcmp (source_name, "timeout") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 1;
-
- if (ACE_OS::strcmp (source_name, "data_available") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 2;
-
- if (ACE_OS::strcmp (source_name, "out_avail") == 0)
- source_flag = ACE_ES_EVENT_SOURCE_ANY + 3;
-
- qos.insert (source_flag,
- event_flag,
- 0,
- 1);
-
- proxy_consumer->connect_push_supplier (supplier.in (),
- qos.get_SupplierQOS ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ return ret_val;
+}
- CORBA::Object_var obj = this->orb_->string_to_object (supplier_oid
- ACE_ENV_ARG_PARAMETER);
+void
+MyImpl::RTEventService_exec_impl::destroy (
+ACE_ENV_SINGLE_ARG_DECL)
+ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->event_channel_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
+}
- Components::CCMObject_var ccm_obj =
- Components::CCMObject::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
+RtecEventChannelAdmin::Observer_Handle
+MyImpl::RTEventService_exec_impl::append_observer (
+ RtecEventChannelAdmin::Observer_ptr gw
+ ACE_ENV_ARG_DECL)
+ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER))
+{
+ RtecEventChannelAdmin::Observer_Handle ret_val =
+ this->event_channel_->append_observer (gw ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+ return ret_val;
+}
- if (CORBA::is_nil (ccm_obj.in ()))
- ACE_ERROR ((LM_ERROR, "Nil event supplier\n"));
-
- // @@ Bala, the connect_publisher method was added to the Events interface in
- // CCM_Event.idl. Let me know if there is a better way.
- ccm_obj->connect_publisher
- (RtecEventChannelAdmin::ProxyPushConsumer::_duplicate (proxy_consumer.in ())
- ACE_ENV_ARG_PARAMETER);
+void
+MyImpl::RTEventService_exec_impl::remove_observer (
+ RtecEventChannelAdmin::Observer_Handle gw
+ ACE_ENV_ARG_DECL)
+ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER))
+{
+ this->event_channel_->remove_observer (gw ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
@@ -199,6 +112,8 @@ void MyImpl::RTEventService_exec_impl::set_session_context (Components::SessionC
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RTEventService_exec_impl::set_session_context\n"));
+
context_ = BasicSP::CCM_RTEventService_Context::_narrow (ctx);
}
@@ -206,7 +121,7 @@ void MyImpl::RTEventService_exec_impl::ccm_activate (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
-
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RTEventService_exec_impl::ccm_activate\n"));
}
void MyImpl::RTEventService_exec_impl::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL)
@@ -223,12 +138,12 @@ void MyImpl::RTEventService_exec_impl::ccm_remove (ACE_ENV_SINGLE_ARG_DECL)
}
-BasicSP::CCM_RTEventChannel_ptr
+RtecEventChannelAdmin::CCM_EventChannel_ptr
MyImpl::RTEventService_exec_impl::get_rt_event_channel (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
ACE_DEBUG ((LM_DEBUG, "RTEventService_exec_impl::get_rt_event_channel\n"));
- return BasicSP::CCM_RTEventChannel::_duplicate (this);
+ return RtecEventChannelAdmin::CCM_EventChannel::_duplicate (this);
}
MyImpl::RTEventServiceHome_exec_impl::RTEventServiceHome_exec_impl ()
@@ -317,3 +232,58 @@ void MyImpl::RTEventServiceConsumer_impl::disconnect_push_consumer (void)
PortableServer::ObjectId_var oid = root_poa->servant_to_id (this);
root_poa->deactivate_object (oid);
}
+
+CIAO::Object_Reference_Cookie::Object_Reference_Cookie ()
+{
+
+}
+
+CIAO::Object_Reference_Cookie::~Object_Reference_Cookie ()
+{
+
+}
+
+CIAO::Object_Reference_Cookie::Object_Reference_Cookie (CORBA::Object_ptr obj)
+{
+
+}
+
+int
+CIAO::Object_Reference_Cookie::insert (CORBA::Object_ptr obj)
+{
+ return 0;
+}
+
+int
+CIAO::Object_Reference_Cookie::extract (::Components::Cookie *ck,
+ CORBA::Object_ptr obj)
+{
+ CIAO::Cookie * c = CIAO::Cookie::_downcast (ck);
+
+ if (c == 0)
+ return -1;
+
+ ::CORBA::OctetSeq * x = c->get_cookie ();
+
+ //if (x->length () != CORBA::Object::size ())
+ // return -1;
+
+ return 0;
+}
+
+
+CORBA::ValueBase *
+CIAO::Object_Reference_Cookie_init::create_for_unmarshal (void)
+{
+ CORBA::ValueBase * return_value = 0;
+ ACE_NEW_RETURN (return_value,
+ CIAO::Object_Reference_Cookie,
+ 0);
+ return return_value;
+}
+
+::CORBA::OctetSeq *
+CIAO::Object_Reference_Cookie::get_cookie (ACE_ENV_SINGLE_ARG_DECL)
+{
+ return &this->cookieValue ();
+}
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h
index 4d272945a49..45c3f51bf8c 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h
@@ -29,6 +29,8 @@
#include "tao/PortableServer/Key_Adapters.h"
#include "ace/Active_Map_Manager_T.h"
+#include "CIAO_ValueC.h"
+
namespace MyImpl
{
/**
@@ -47,26 +49,41 @@ namespace MyImpl
/// Default destructor.
~RTEventService_exec_impl ();
- // Operations from BasicSP::CCM_RTEventService
+ // Operations from RtecEventChannel::CCM_EventChannel
+
+ virtual ::RtecEventChannelAdmin::ConsumerAdmin_ptr
+ for_consumers (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
- virtual void connect_consumer (
- const char * event_type,
- const char * sink_name,
- const char * consumer_oid
- ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
+ virtual ::RtecEventChannelAdmin::SupplierAdmin_ptr
+ for_suppliers (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ destroy (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual RtecEventChannelAdmin::Observer_Handle
+ append_observer (
+ RtecEventChannelAdmin::Observer_ptr gw
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER
));
- virtual void connect_supplier (
- const char * event_type,
- const char * source_name,
- const char * supplier_oid
- ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
+ virtual void
+ remove_observer (
+ RtecEventChannelAdmin::Observer_Handle gw
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER
));
// Operations from Components::SessionComponent
@@ -92,7 +109,7 @@ namespace MyImpl
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException));
- virtual BasicSP::CCM_RTEventChannel_ptr
+ virtual RtecEventChannelAdmin::CCM_EventChannel_ptr
get_rt_event_channel (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -104,10 +121,6 @@ namespace MyImpl
// Reference to event channel
RtecEventChannelAdmin::EventChannel_var event_channel_;
- ACE_Active_Map_Manager<
- ::RtecEventChannelAdmin::ProxyPushSupplier_var>
- proxy_supplier_map_;
-
CORBA::ORB_var orb_;
PortableServer::POA_var poa_;
@@ -139,13 +152,12 @@ namespace MyImpl
Components::CCMException));
};
- // NEW
- class RTEventServiceSupplier_impl :
+ class RTEVENTSERVICE_EXEC_Export RTEventServiceSupplier_impl :
public virtual POA_RtecEventComm::PushSupplier,
public virtual PortableServer::RefCountServantBase
{
- public:
+ public:
RTEventServiceSupplier_impl (void);
RTEventServiceSupplier_impl (CORBA::ORB_ptr orb);
@@ -157,12 +169,12 @@ namespace MyImpl
CORBA::ORB_var orb_;
};
- class RTEventServiceConsumer_impl :
+ class RTEVENTSERVICE_EXEC_Export RTEventServiceConsumer_impl :
public virtual POA_RtecEventComm::PushConsumer,
public virtual PortableServer::RefCountServantBase
{
- public:
+ public:
RTEventServiceConsumer_impl (void);
RTEventServiceConsumer_impl (CORBA::ORB_ptr orb,
@@ -177,7 +189,41 @@ namespace MyImpl
CORBA::ORB_var orb_;
Components::EventConsumerBase_var event_consumer_;
};
- // END NEW
+
+}
+
+namespace CIAO
+{
+
+ class RTEVENTSERVICE_EXEC_Export Object_Reference_Cookie
+ : public virtual OBV_CIAO::Cookie
+ {
+
+ public:
+ Object_Reference_Cookie ();
+
+ Object_Reference_Cookie (CORBA::Object_ptr obj);
+
+ virtual ::CORBA::OctetSeq * get_cookie (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS);
+
+ ~Object_Reference_Cookie ();
+
+ int insert (CORBA::Object_ptr obj);
+
+ static int extract (::Components::Cookie *c,
+ CORBA::Object_ptr obj);
+ };
+
+ class Object_Reference_Cookie_init : public virtual ::Components::Cookie_init
+ {
+
+ public:
+ Object_Reference_Cookie_init (void);
+
+ virtual ~Object_Reference_Cookie_init (void);
+
+ virtual CORBA::ValueBase * create_for_unmarshal (void);
+ };
}
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp
index e2311f744ec..63987dc43b3 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp
@@ -21,52 +21,79 @@
#include "RTEventService_svnt.h"
#include "Cookies.h"
-namespace CIAO_GLUE_BasicSP
+namespace CIAO_GLUE_RtecEventChannelAdmin
{
- RTEventChannel_Servant::RTEventChannel_Servant (
- ::BasicSP::CCM_RTEventChannel_ptr executor,
+ EventChannel_Servant::EventChannel_Servant (
+ ::RtecEventChannelAdmin::CCM_EventChannel_ptr executor,
::Components::CCMContext_ptr c)
- : executor_ (::BasicSP::CCM_RTEventChannel::_duplicate (executor)),
+ : executor_ (::RtecEventChannelAdmin::CCM_EventChannel::_duplicate (executor)),
ctx_ (::Components::CCMContext::_duplicate (c))
{
}
- RTEventChannel_Servant::~RTEventChannel_Servant (void)
+ EventChannel_Servant::~EventChannel_Servant (void)
+ {
+ }
+
+ ::RtecEventChannelAdmin::ConsumerAdmin_ptr
+ EventChannel_Servant::for_consumers (
+ ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ {
+ return this->executor_->for_consumers (
+ ACE_ENV_SINGLE_ARG_PARAMETER);
+ }
+
+ ::RtecEventChannelAdmin::SupplierAdmin_ptr
+ EventChannel_Servant::for_suppliers (
+ ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
+ return this->executor_->for_suppliers (
+ ACE_ENV_SINGLE_ARG_PARAMETER);
}
void
- RTEventChannel_Servant::connect_consumer (
- const char * event_type,
- const char * sink_name,
- const char * consumer_oid
- ACE_ENV_ARG_DECL)
+ EventChannel_Servant::destroy (
+ ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- this->executor_->connect_consumer (
- event_type,
- sink_name,
- consumer_oid
+ this->executor_->destroy (
+ ACE_ENV_SINGLE_ARG_PARAMETER);
+ }
+
+ RtecEventChannelAdmin::Observer_Handle
+ EventChannel_Servant::append_observer (
+ RtecEventChannelAdmin::Observer_ptr gw
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER
+ ))
+ {
+ return this->executor_->append_observer (
+ gw
ACE_ENV_ARG_PARAMETER);
}
void
- RTEventChannel_Servant::connect_supplier (
- const char * event_type,
- const char * source_name,
- const char * supplier_oid
+ EventChannel_Servant::remove_observer (
+ RtecEventChannelAdmin::Observer_Handle gw
ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER
+ ))
{
- this->executor_->connect_supplier (
- event_type,
- source_name,
- supplier_oid
+ this->executor_->remove_observer (
+ gw
ACE_ENV_ARG_PARAMETER);
}
CORBA::Object_ptr
- RTEventChannel_Servant::_get_component (
+ EventChannel_Servant::_get_component (
ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
@@ -269,26 +296,26 @@ namespace CIAO_GLUE_BasicSP
this->context_->_remove_ref ();
}
- ::BasicSP::RTEventChannel_ptr
+ ::RtecEventChannelAdmin::EventChannel_ptr
RTEventService_Servant::provide_rt_event_channel (
ACE_ENV_SINGLE_ARG_PARAMETER)
ACE_THROW_SPEC ((CORBA::SystemException))
{
if (::CORBA::is_nil (this->provide_rt_event_channel_.in ()))
{
- ::BasicSP::CCM_RTEventChannel_var fexe =
+ ::RtecEventChannelAdmin::CCM_EventChannel_var fexe =
this->executor_->get_rt_event_channel (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (::BasicSP::RTEventChannel::_nil ());
+ ACE_CHECK_RETURN (::RtecEventChannelAdmin::EventChannel::_nil ());
if (::CORBA::is_nil (fexe.in ()))
{
ACE_THROW_RETURN (
::CORBA::INTERNAL (),
- ::BasicSP::RTEventChannel::_nil ());
+ ::RtecEventChannelAdmin::EventChannel::_nil ());
}
- RTEventChannel_Servant *svt =
- new RTEventChannel_Servant (
+ CIAO_GLUE_RtecEventChannelAdmin::EventChannel_Servant *svt =
+ new CIAO_GLUE_RtecEventChannelAdmin::EventChannel_Servant (
fexe.in (),
this->context_);
PortableServer::ServantBase_var safe_servant (svt);
@@ -297,18 +324,18 @@ namespace CIAO_GLUE_BasicSP
this->container_->install_servant (
svt
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (::BasicSP::RTEventChannel::_nil ());
+ ACE_CHECK_RETURN (::RtecEventChannelAdmin::EventChannel::_nil ());
- ::BasicSP::RTEventChannel_var fo =
- ::BasicSP::RTEventChannel::_narrow (
+ ::RtecEventChannelAdmin::EventChannel_var fo =
+ ::RtecEventChannelAdmin::EventChannel::_narrow (
obj.in ()
ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (::BasicSP::RTEventChannel::_nil ());
+ ACE_CHECK_RETURN (::RtecEventChannelAdmin::EventChannel::_nil ());
this->provide_rt_event_channel_ = fo;
}
- return ::BasicSP::RTEventChannel::_duplicate (this->provide_rt_event_channel_.in ());
+ return ::RtecEventChannelAdmin::EventChannel::_duplicate (this->provide_rt_event_channel_.in ());
}
// Operations for Navigation interface.
@@ -459,20 +486,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- void
- RTEventService_Servant::connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName))
- {
- ACE_THROW (
- ::Components::InvalidName ());
- }
- // END NEW
-
::Components::EventConsumerBase_ptr
RTEventService_Servant::get_consumer (
const char *sink_name
diff --git a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h
index ac196b89dd3..24252c75543 100644
--- a/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h
+++ b/TAO/CIAO/examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h
@@ -34,34 +34,53 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-namespace CIAO_GLUE_BasicSP
+namespace CIAO_GLUE_RtecEventChannelAdmin
{
- class RTEVENTSERVICE_SVNT_Export RTEventChannel_Servant
- : public virtual POA_BasicSP::RTEventChannel,
+ class RTEVENTSERVICE_SVNT_Export EventChannel_Servant
+ : public virtual POA_RtecEventChannelAdmin::EventChannel,
public virtual PortableServer::RefCountServantBase
{
public:
- RTEventChannel_Servant (
- ::BasicSP::CCM_RTEventChannel_ptr executor,
+ EventChannel_Servant (
+ ::RtecEventChannelAdmin::CCM_EventChannel_ptr executor,
::Components::CCMContext_ptr ctx);
- virtual ~RTEventChannel_Servant (void);
+ virtual ~EventChannel_Servant (void);
+
+ virtual ::RtecEventChannelAdmin::ConsumerAdmin_ptr
+ for_consumers (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual ::RtecEventChannelAdmin::SupplierAdmin_ptr
+ for_suppliers (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
virtual void
- connect_consumer (
- const char * event_type,
- const char * sink_name,
- const char * consumer_oid
- ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ destroy (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual RtecEventChannelAdmin::Observer_Handle
+ append_observer (
+ RtecEventChannelAdmin::Observer_ptr gw
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER
+ ));
+
virtual void
- connect_supplier (
- const char * event_type,
- const char * source_name,
- const char * supplier_oid
+ remove_observer (
+ RtecEventChannelAdmin::Observer_Handle gw
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
+ RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER
+ ));
// Get component implementation.
virtual CORBA::Object_ptr
@@ -71,7 +90,7 @@ namespace CIAO_GLUE_BasicSP
protected:
// Facet executor.
- ::BasicSP::CCM_RTEventChannel_var executor_;
+ ::RtecEventChannelAdmin::CCM_EventChannel_var executor_;
// Context object.
::Components::CCMContext_var ctx_;
@@ -176,7 +195,7 @@ namespace CIAO_GLUE_BasicSP
virtual ~RTEventService_Servant (void);
- virtual ::BasicSP::RTEventChannel_ptr
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr
provide_rt_event_channel (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -259,16 +278,6 @@ namespace CIAO_GLUE_BasicSP
// Operations for Events interface.
- // NEW
- virtual void
- connect_publisher (
- RtecEventChannelAdmin::ProxyPushConsumer * proxy_consumer
- ACE_ENV_ARG_DECL_WITH_DEFAULTS)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::Components::InvalidName));
- // END NEW
-
virtual ::Components::EventConsumerBase_ptr
get_consumer (
const char *sink_name
@@ -423,7 +432,7 @@ namespace CIAO_GLUE_BasicSP
::CIAO::Session_Container *
container_;
- ::BasicSP::RTEventChannel_var
+ ::RtecEventChannelAdmin::EventChannel_var
provide_rt_event_channel_;
};