diff options
Diffstat (limited to 'TAO/CIAO/ciaosvcs/Events/CIAO_Events.idl')
-rw-r--r-- | TAO/CIAO/ciaosvcs/Events/CIAO_Events.idl | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/TAO/CIAO/ciaosvcs/Events/CIAO_Events.idl b/TAO/CIAO/ciaosvcs/Events/CIAO_Events.idl new file mode 100644 index 00000000000..6f2ee1d1e33 --- /dev/null +++ b/TAO/CIAO/ciaosvcs/Events/CIAO_Events.idl @@ -0,0 +1,62 @@ +// $Id$ + +/** + * @file CIAO_Events.idl + * + * @author George Edwards <g.edwards@vanderbilt.edu> + * @author Gan Deng <dengg@dre.vanderbilt.edu> + * + * @brief Interfaces for configuring CIAO's event mechanism. + */ + +#include "ciao/CCM_Event.idl" + +module CIAO +{ + /// A component's UUID + port name. + typedef string CONNECTION_ID; + + enum EventServiceType + { + DIRECT, + EC, + RTEC, + NOTIFY, + RTNOTIFY + }; + + interface Supplier_Config + { + attribute CONNECTION_ID supplier_id; + + readonly attribute EventServiceType service_type; + + void destroy (); + }; + + interface Consumer_Config : Supplier_Config + { + attribute CONNECTION_ID consumer_id; + attribute Components::EventConsumerBase consumer; + }; + + interface ContainerEventService + { + Supplier_Config create_supplier_config (in EventServiceType type); + + Consumer_Config create_consumer_config (in EventServiceType type); + + void connect_event_supplier (in Supplier_Config supplier_conf); + + void disconnect_event_supplier (in CONNECTION_ID conn_id) + raises (Components::InvalidConnection, Components::InvalidName); + + void connect_event_consumer (in Consumer_Config consumer_conf); + + void disconnect_event_consumer (in CONNECTION_ID conn_id) + raises (Components::InvalidConnection, Components::InvalidName); + + void push_event (in Components::EventBase ev, + in CONNECTION_ID conn_id); + }; +}; |