#ifndef _CosEventComm_IDL_
#define _CosEventComm_IDL_

#pragma prefix "omg.org"

module CosEventComm {
	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 /* !_CosEventComm_IDL_ */
