//
// The Event Service IDL Description
//
#ifndef _COS_EVENT_COMM_
#define _COS_EVENT_COMM_

module CosEventComm
{
  typePrefix CosEventComm "omg.org";
  
  exception Disconnected {};
  
  interface PushConsumer
  {
      void push(in any data)
  	raises(Disconnected);
  
      void disconnect_push_consumer();
  };
  
  interface PushSupplier
  {
      void disconnect_push_supplier();
  };
  
  interface PullSupplier
  {
      any pull()
  	raises(Disconnected);
  
      any try_pull(out boolean has_event)
  	raises(Disconnected);
  
      void disconnect_pull_supplier();
  };
  
  interface PullConsumer
  {
      void disconnect_pull_consumer();
  };
};
#endif
