diff options
Diffstat (limited to 'modules/CIAO/ciao/CCM_Events.idl')
-rw-r--r-- | modules/CIAO/ciao/CCM_Events.idl | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/modules/CIAO/ciao/CCM_Events.idl b/modules/CIAO/ciao/CCM_Events.idl new file mode 100644 index 00000000000..4abc6ca4115 --- /dev/null +++ b/modules/CIAO/ciao/CCM_Events.idl @@ -0,0 +1,102 @@ +// $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); + + /** + * @todo Mismatch with 06-04-01, AlreadyConnected is not listed in the + * spec with this operation. + */ + Cookie subscribe (in FeatureName publisher_name, + in EventConsumerBase subscriber) + raises (InvalidName, + AlreadyConnected, + 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 */ |