diff options
Diffstat (limited to 'CIAO/ciao/CCM_Events.idl')
-rw-r--r-- | CIAO/ciao/CCM_Events.idl | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/CIAO/ciao/CCM_Events.idl b/CIAO/ciao/CCM_Events.idl new file mode 100644 index 00000000000..de0f894daf2 --- /dev/null +++ b/CIAO/ciao/CCM_Events.idl @@ -0,0 +1,97 @@ +// $Id$ + +/** + * @@ Compile this file with: + * + * tao_idl -Gv -I ../.. -I ../../orbsvcs/orbsvcs \ + * -Wb,export_macro=CIAO_Export \ + * -Wb,export_include=CIAO_export.h \ + * -Wb,pre_include="ace/pre.h" \ + * -Wb,post_include="ace/post.h" \ + * CCM_Event.idl + */ + +//#define CIAO_HAS_IMPORT_KEYWORD + +#if !defined (CCM_EVENTS_IDL) +#define CCM_EVENTS_IDL + +#include "ciao/CCM_Base.idl" +#include "ciao/CCM_Navigation.idl" +#include "ciao/CCM_Receptacle.idl" +#include "ciao/CCM_Cookie.idl" +#include "ciao/CCM_EventBase.idl" +#include "ciao/CCM_EventConsumerBase.idl" + +module Components +{ + typeprefix Components "omg.org"; + + valuetype ConsumerDescription : PortDescription + { + public EventConsumerBase consumer; + }; + typedef sequence<ConsumerDescription> ConsumerDescriptions; + + valuetype EmitterDescription : PortDescription + { + public EventConsumerBase consumer; + }; + typedef sequence<EmitterDescription> EmitterDescriptions; + + valuetype SubscriberDescription + { + public Cookie ck; + public EventConsumerBase consumer; + }; + typedef sequence<SubscriberDescription> SubscriberDescriptions; + + valuetype PublisherDescription : PortDescription + { + public SubscriberDescriptions consumer; + }; + typedef sequence<PublisherDescription> PublisherDescriptions; + + 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); + + ConsumerDescriptions get_all_consumers (); + + ConsumerDescriptions get_named_consumers (in NameList names) + raises (InvalidName); + + EmitterDescriptions get_all_emitters (); + + EmitterDescriptions get_named_emitters (in NameList names) + raises (InvalidName); + + PublisherDescriptions get_all_publishers (); + + PublisherDescriptions get_named_publishers (in NameList names) + raises (InvalidName); + }; +}; +#endif /* CCM_EVENT_IDL */ |