pragma Style_Checks ("NM32766");
pragma Wide_Character_Encoding (Brackets);
pragma Warnings (Off, "use of an anonymous access type allocator");

---------------------------------------------------
--  This file has been generated automatically from
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/notification/CosNotifyComm.idl
--  by IAC (IDL to Ada Compiler) 25.0w (rev. unknown).
---------------------------------------------------
--  NOTE: If you modify this file by hand, your
--  changes will be lost when you re-run the
--  IDL to Ada compiler.
---------------------------------------------------

--  Source: 
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/notification/CosNotifyComm.idl

--  //File: CosNotifyComm.idl
--  //Part of the Notification Service
--  //OMG File: 04-10-12

--  #ifndef _COS_NOTIFY_COMM_IDL_
--  #define _COS_NOTIFY_COMM_IDL_

--  #ifdef _PRE_3_0_COMPILER_
--  #include <CosNotification.idl>
--  #include <CosEventComm.idl>
--  #pragma prefix "omg.org"
--  #else
--  import ::CosNotification;
--  import ::CosEventComm;
--  #endif // _PRE_3_0_COMPILER_

--  module CosNotifyComm {

--  #ifndef _PRE_3_0_COMPILER_
--  typeprefix CosNotifyComm "omg.org";
--  #endif // _PRE_3_0_COMPILER_

--  exception InvalidEventType { CosNotification::_EventType type; };

--  interface NotifyPublish {

--  void offer_change (
--  		in CosNotification::EventTypeSeq added,
--  		in CosNotification::EventTypeSeq removed )
--  	raises ( InvalidEventType );

--  }; // NotifyPublish

--  interface NotifySubscribe {


--  void subscription_change(
--  		in CosNotification::EventTypeSeq added,
--  		in CosNotification::EventTypeSeq removed )
--  	raises ( InvalidEventType );

--  }; // NotifySubscribe

--  interface PushConsumer :
--  	NotifyPublish,
--  	CosEventComm::PushConsumer {
--  }; // PushConsumer

--  interface PullConsumer :
--  	NotifyPublish,
--  	CosEventComm::PullConsumer {
--  }; // PullConsumer

--  interface PullSupplier :
--  	NotifySubscribe,
--  	CosEventComm::PullSupplier {
--  }; // PullSupplier

--  interface PushSupplier :
--  	NotifySubscribe,
--  	CosEventComm::PushSupplier {
--  };

--  interface StructuredPushConsumer : NotifyPublish {

--  void push_structured_event(
--  		in CosNotification::StructuredEvent notification)
--  	raises(CosEventComm::Disconnected);

--  void disconnect_structured_push_consumer();

--  }; // StructuredPushConsumer

--  interface StructuredPullConsumer : NotifyPublish {
--  void disconnect_structured_pull_consumer();
--  }; // StructuredPullConsumer

--  interface StructuredPullSupplier : NotifySubscribe {

--  CosNotification::StructuredEvent pull_structured_event()
--  	raises(CosEventComm::Disconnected);
--  CosNotification::StructuredEvent try_pull_structured_event(
--  		out boolean has_event)
--  	raises(CosEventComm::Disconnected);

--  void disconnect_structured_pull_supplier();

--  }; // StructuredPullSupplier


--  interface StructuredPushSupplier : NotifySubscribe {
--  void disconnect_structured_push_supplier();
--  }; // StructuredPushSupplier

--  interface SequencePushConsumer : NotifyPublish {

--  void push_structured_events(
--  		in CosNotification::EventBatch notifications)
--  	raises(CosEventComm::Disconnected);

--  void disconnect_sequence_push_consumer();

--  }; // SequencePushConsumer

--  interface SequencePullConsumer : NotifyPublish {
--  void disconnect_sequence_pull_consumer();
--  }; // SequencePullConsumer

--  interface SequencePullSupplier : NotifySubscribe {

--  CosNotification::EventBatch pull_structured_events(
--  		in long max_number )
--  	raises(CosEventComm::Disconnected);

--  CosNotification::EventBatch try_pull_structured_events(
--  		in long max_number,
--  		out boolean has_event)
--  	raises(CosEventComm::Disconnected);

--  void disconnect_sequence_pull_supplier();

--  }; // SequencePullSupplier

--  interface SequencePushSupplier : NotifySubscribe {
--  void disconnect_sequence_push_supplier();
--  }; // SequencePushSupplier

--  }; // CosNotifyComm

--  #endif /* _COS_NOTIFY_COMM_IDL_ */

--  End source: 
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/notification/CosNotifyComm.idl
--   -- 131 lines

--  Source: ./CosNotification.idl

--  //File: CosNotification.idl
--  //Part of the Notification Service
--  //OMG File: 04-10-12

--  #ifndef _COS_NOTIFICATION_IDL_
--  #define _COS_NOTIFICATION_IDL_

--  #ifdef _PRE_3_0_COMPILER_
--  #pragma prefix "omg.org"
--  #endif // _PRE_3_0_COMPILER_

--  module CosNotification {

--  #ifndef _PRE_3_0_COMPILER_
--  typeprefix CosNotification "omg.org";
--  #endif // _PRE_3_0_COMPILER_

--  typedef string Istring;
--  typedef Istring PropertyName;
--  typedef any PropertyValue;

--  struct Property {
--  	PropertyName name;
--  	PropertyValue value;
--  };
--  typedef sequence<Property> PropertySeq;

--  // The following are the same, but serve different purposes.
--  typedef PropertySeq OptionalHeaderFields;
--  typedef PropertySeq FilterableEventBody;
--  typedef PropertySeq QoSProperties;
--  typedef PropertySeq AdminProperties;

--  struct _EventType {
--  	string domain_name;
--  	string type_name;
--  };
--  typedef sequence<_EventType> EventTypeSeq;

--  struct PropertyRange {
--  	PropertyValue low_val;
--  	PropertyValue high_val;
--  	};


--  struct NamedPropertyRange {
--  	PropertyName name;
--  	PropertyRange range;
--  };
--  typedef sequence<NamedPropertyRange> NamedPropertyRangeSeq;

--  enum QoSError_code {
--  	UNSUPPORTED_PROPERTY,
--  	UNAVAILABLE_PROPERTY,
--  	UNSUPPORTED_VALUE,
--  	UNAVAILABLE_VALUE,
--  	BAD_PROPERTY,
--  	BAD_TYPE,
--  	BAD_VALUE
--  };

--  struct PropertyError {
--  	QoSError_code code;
--  	PropertyName name;
--  	PropertyRange available_range;
--  };
--  typedef sequence<PropertyError> PropertyErrorSeq;

--  exception UnsupportedQoS { PropertyErrorSeq qos_err; };
--  exception UnsupportedAdmin { PropertyErrorSeq admin_err; };

--  // Define the Structured Event structure
--  struct FixedEventHeader { 
--  	_EventType event_type;
--  	string event_name;
--  };

--  struct EventHeader {
--  	FixedEventHeader fixed_header;
--  	OptionalHeaderFields variable_header;
--  };

--  struct StructuredEvent {
--  	EventHeader header;
--  	FilterableEventBody filterable_data;
--  	any remainder_of_body;
--  }; // StructuredEvent
--  typedef sequence<StructuredEvent> EventBatch;

--  // The following constant declarations define the standard
--  // QoS property names and the associated values each property
--  // can take on. The name/value pairs for each standard property
--  // are grouped, beginning with a string constant defined for the
--  // property name, followed by the values the property can take on.

--  const string EventReliability = "EventReliability";
--  const short BestEffort = 0;
--  const short Persistent = 1;


--  const string ConnectionReliability = "ConnectionReliability";
--  // Can take on the same values as EventReliability

--  const string Priority = "Priority";
--  const short LowestPriority = -32767;
--  const short HighestPriority = 32767;
--  const short DefaultPriority = 0;

--  const string StartTime = "StartTime";
--  // StartTime takes a value of type TimeBase::UtcT.

--  const string StopTime = "StopTime";
--  // StopTime takes a value of type TimeBase::UtcT.

--  const string Timeout = "Timeout";
--  // Timeout takes on a value of type TimeBase::TimeT

--  const string OrderPolicy = "OrderPolicy";
--  const short AnyOrder = 0;
--  const short FifoOrder = 1;
--  const short PriorityOrder = 2;
--  const short DeadlineOrder = 3;

--  const string DiscardPolicy = "DiscardPolicy";
--  // DiscardPolicy takes on the same values as OrderPolicy, plus
--  const short LifoOrder = 4;

--  const string MaximumBatchSize = "MaximumBatchSize";
--  // MaximumBatchSize takes on a value of type long

--  const string PacingInterval = "PacingInterval";
--  // PacingInterval takes on a value of type TimeBase::TimeT

--  const string StartTimeSupported = "StartTimeSupported";
--  // StartTimeSupported takes on a boolean value

--  const string StopTimeSupported = "StopTimeSupported";
--  // StopTimeSupported takes on a boolean value

--  const string MaxEventsPerConsumer = "MaxEventsPerConsumer";
--  // MaxEventsPerConsumer takes on a value of type long

--  interface QoSAdmin {

--  QoSProperties get_qos();

--  void set_qos ( in QoSProperties qos)
--  	raises ( UnsupportedQoS );

--  void validate_qos (
--  	in QoSProperties required_qos,
--  	out NamedPropertyRangeSeq available_qos )
--  	raises ( UnsupportedQoS );


--  }; // QosAdmin

--  // Admin properties are defined in similar manner as QoS
--  // properties. The only difference is that these properties
--  // are related to channel administration policies, as opposed 
--  // message quality of service

--  const string MaxQueueLength = "MaxQueueLength";
--  // MaxQueueLength takes on a value of type long

--  const string MaxConsumers = "MaxConsumers";
--  // MaxConsumers takes on a value of type long

--  const string MaxSuppliers = "MaxSuppliers";
--  // MaxSuppliers takes on a value of type long

--  const string RejectNewEvents = "RejectNewEvents";
--  // RejectNewEvents takes on a value of type Boolean

--  interface AdminPropertiesAdmin {

--  AdminProperties get_admin();

--  void set_admin (in AdminProperties admin)
--  	raises ( UnsupportedAdmin);

--  }; // AdminPropertiesAdmin


--  }; // CosNotification
--  #endif /* _COS_NOTIFICATION_IDL_ */

--  End source: ./CosNotification.idl -- 187 lines

--  Source: 
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/event/CosEventComm.idl

--  //File: CosEventComm.idl
--  //Part of the Event Service
--  //OMG File: 04-10-06

--  #ifndef _COS_EVENT_COMM_IDL_
--  #define _COS_EVENT_COMM_IDL_

--  #ifdef _PRE_3_0_COMPILER_
--  #pragma prefix "omg.org"
--  #endif // _PRE_3_0_COMPILER_

--  module CosEventComm {

--  #ifndef _PRE_3_0_COMPILER_
--  	typeprefix CosEventComm "omg.org";
--  #endif // _PRE_3_0_COMPILER_

--  	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 /* ifndef _COS_EVENT_COMM_IDL_ */

--  End source: 
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/event/CosEventComm.idl
--   -- 42 lines

---------------------------------------------------

with PolyORB.Std;
with CosNotification;
with CORBA;
pragma Elaborate_All (CORBA);
with Ada.Exceptions;

package CosNotifyComm is

   Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotifyComm:1.0";

   InvalidEventType : exception;

   type InvalidEventType_Members is
     new CORBA.Idl_Exception_Members with record
         IDL_type : CosNotification.EventType;
      end record;

   InvalidEventType_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotifyComm/InvalidEventType:1.0";

   procedure Get_Members
     (From : Ada.Exceptions.Exception_Occurrence;
      To : out CosNotifyComm.InvalidEventType_Members);

end CosNotifyComm;
