summaryrefslogtreecommitdiff
path: root/modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h')
-rw-r--r--modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h97
1 files changed, 68 insertions, 29 deletions
diff --git a/modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h b/modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
index 0ba65234b21..075f97b9531 100644
--- a/modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
+++ b/modules/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
@@ -28,6 +28,11 @@
#include "orbsvcs/orbsvcs/Event_Utilities.h"
#include "orbsvcs/orbsvcs/Event/EC_Event_Channel.h"
#include "orbsvcs/orbsvcs/Event/EC_Default_Factory.h"
+#include "orbsvcs/Event/ECG_Mcast_EH.h"
+#include "orbsvcs/Event/ECG_UDP_Sender.h"
+#include "orbsvcs/Event/ECG_UDP_Receiver.h"
+#include "orbsvcs/Event/ECG_UDP_Out_Endpoint.h"
+#include "orbsvcs/Event/ECG_UDP_EH.h"
#include "ace/Hash_Map_Manager.h"
namespace CIAO
@@ -44,12 +49,14 @@ namespace CIAO
* first time initialized.
*/
class CIAO_RTEVENT_Export RTEventService :
- public virtual EventServiceBase
+ public virtual EventServiceBase,
+ public virtual POA_CIAO::CIAO_RT_Event_Service
{
public:
RTEventService (CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa);
+ PortableServer::POA_ptr poa,
+ const char * ec_name);
virtual ~RTEventService (void);
@@ -94,11 +101,45 @@ namespace CIAO
ACE_THROW_SPEC ((
CORBA::SystemException));
+ virtual void ciao_push_event (
+ Components::EventBase * evt,
+ const char * source_id
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException,
+ ::Components::BadEventType));
+
+ virtual ::CORBA::Boolean create_addr_serv (
+ const char * name,
+ ::CORBA::UShort port,
+ const char * address
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException));
+
+ virtual ::CORBA::Boolean create_sender (
+ const char * addr_serv_id
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException));
+
+ virtual ::CORBA::Boolean create_receiver (
+ const char * addr_serv_id,
+ ::CORBA::Boolean is_multicast,
+ ::CORBA::UShort listen_port
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((
+ ::CORBA::SystemException));
+
+ virtual ::RtecEventChannelAdmin::EventChannel_ptr tao_rt_event_channel (
+ ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
+ )
+ ACE_THROW_SPEC ((::CORBA::SystemException));
+
private:
// @@ (GD) This is the place where use could provide a parameter
// which specifies the event channel service configuration file.
- void create_rt_event_channel (
- ACE_ENV_SINGLE_ARG_DECL)
+ void create_rt_event_channel (const char * ec_name)
ACE_THROW_SPEC ((
CORBA::SystemException));
@@ -118,38 +159,38 @@ namespace CIAO
RtecEventChannelAdmin::EventChannel_var rt_event_channel_;
/**
- * @var RtecEventComm::EventType type_id_
- *
- * The type of event.
- */
- RtecEventComm::EventType type_id_;
-
- /**
- * @var RtecEventComm::EventSourceID source_id_
- * @@@ Need to change this into a map, since multiple sources
- * could be connected to the event channel.
+ * @var ACE_Hash_Map_Manager<> proxy_supplier_map_
*
- * The supplier id.
+ * Mapping of each event sink to a proxy supplier for disconnect purposes.
*/
- RtecEventComm::EventSourceID source_id_;
+ ACE_Hash_Map_Manager_Ex<ACE_CString,
+ RtecEventChannelAdmin::ProxyPushConsumer_var,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> proxy_consumer_map_;
/**
- * @var RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer_
+ * @var ACE_Hash_Map_Manager<> proxy_supplier_map_
*
- * The proxy consumer to which events are pushed.
+ * Mapping of each event sink to a proxy supplier for disconnect purposes.
*/
- RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer_;
+ ACE_Hash_Map_Manager_Ex<ACE_CString,
+ RtecEventChannelAdmin::ProxyPushSupplier_var,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> proxy_supplier_map_;
/**
- * @var ACE_Hash_Map_Manager<> proxy_supplier_map_
+ * @var ACE_Hash_Map_Manager<> addr_serv_map_
*
- * Mapping of each event sink to a proxy supplier for disconnect purposes.
+ * A map which managers a set of address servers for event channel
+ * federation purpose.
*/
ACE_Hash_Map_Manager_Ex<ACE_CString,
- RtecEventChannelAdmin::ProxyPushSupplier_ptr,
+ RtecUDPAdmin::AddrServer_var,
ACE_Hash<ACE_CString>,
ACE_Equal_To<ACE_CString>,
- ACE_Null_Mutex> proxy_supplier_map_;
+ ACE_Null_Mutex> addr_serv_map_;
};
@@ -244,11 +285,11 @@ namespace CIAO
virtual CONNECTION_ID consumer_id (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
- virtual void supplier_id (const char * supplier_id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ //virtual void supplier_id (const char * supplier_id ACE_ENV_ARG_DECL)
+ // ACE_THROW_SPEC ((CORBA::SystemException));
- virtual CONNECTION_ID supplier_id (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ //virtual CONNECTION_ID supplier_id (ACE_ENV_SINGLE_ARG_DECL)
+ // ACE_THROW_SPEC ((CORBA::SystemException));
virtual void consumer (Components::EventConsumerBase_ptr consumer ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -272,8 +313,6 @@ namespace CIAO
ACE_CString consumer_id_;
- ACE_CString supplier_id_;
-
Components::EventConsumerBase_var consumer_;
EventServiceType service_type_;