summaryrefslogtreecommitdiff
path: root/modules/CIAO/ccm/CCM_Events.idl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/ccm/CCM_Events.idl')
-rw-r--r--modules/CIAO/ccm/CCM_Events.idl105
1 files changed, 105 insertions, 0 deletions
diff --git a/modules/CIAO/ccm/CCM_Events.idl b/modules/CIAO/ccm/CCM_Events.idl
new file mode 100644
index 00000000000..da3f826647c
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Events.idl
@@ -0,0 +1,105 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.6.8
+
+#if !defined (CCM_EVENTS_IDL)
+#define CCM_EVENTS_IDL
+
+#include "ccm/CCM_Base.idl"
+#include "ccm/CCM_Navigation.idl"
+#include "ccm/CCM_Receptacle.idl"
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/CCM_EventBase.idl"
+#include "ccm/CCM_EventConsumerBase.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+#if !defined (CCM_LW)
+ valuetype ConsumerDescription : PortDescription
+ {
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<ConsumerDescription> ConsumerDescriptions;
+#endif
+
+#if !defined (CCM_LW)
+ valuetype EmitterDescription : PortDescription
+ {
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<EmitterDescription> EmitterDescriptions;
+#endif
+
+#if !defined (CCM_LW)
+ valuetype SubscriberDescription
+ {
+ public Cookie ck;
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<SubscriberDescription> SubscriberDescriptions;
+#endif
+
+#if !defined (CCM_LW)
+ valuetype PublisherDescription : PortDescription
+ {
+ public SubscriberDescriptions consumers;
+ };
+ typedef sequence<PublisherDescription> PublisherDescriptions;
+#endif
+
+ interface Events
+ {
+ EventConsumerBase get_consumer (in FeatureName sink_name)
+ raises (InvalidName);
+
+ Cookie subscribe (in FeatureName publisher_name,
+ in EventConsumerBase subscriber)
+ raises (InvalidName,
+ InvalidConnection,
+ ExceededConnectionLimit);
+
+ EventConsumerBase unsubscribe (in FeatureName publisher_name,
+ in Cookie ck)
+ raises (InvalidName,
+ InvalidConnection);
+
+ void connect_consumer (in FeatureName emitter_name,
+ in EventConsumerBase consumer)
+ raises (InvalidName,
+ AlreadyConnected,
+ InvalidConnection);
+
+ EventConsumerBase disconnect_consumer (in FeatureName source_name)
+ raises (InvalidName,
+ NoConnection);
+
+#if !defined (CCM_LW)
+ ConsumerDescriptions get_all_consumers ();
+#endif
+
+#if !defined (CCM_LW)
+ ConsumerDescriptions get_named_consumers (in NameList names)
+ raises (InvalidName);
+#endif
+
+#if !defined (CCM_LW)
+ EmitterDescriptions get_all_emitters ();
+#endif
+
+#if !defined (CCM_LW)
+ EmitterDescriptions get_named_emitters (in NameList names)
+ raises (InvalidName);
+#endif
+
+#if !defined (CCM_LW)
+ PublisherDescriptions get_all_publishers ();
+#endif
+
+#if !defined (CCM_LW)
+ PublisherDescriptions get_named_publishers (in NameList names)
+ raises (InvalidName);
+#endif
+ };
+};
+#endif /* CCM_EVENTS_IDL */