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/CosNotification.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/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: 
--  /pbulk/work/net/ada-polyorb/work/PolyORB-25.0/idls/cos/notification/CosNotification.idl
--   -- 187 lines

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

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

package CosNotification is

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

   type Istring is
     new CORBA.String;

   Istring_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/Istring:1.0";

   type PropertyName is
     new CosNotification.Istring;

   PropertyName_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertyName:1.0";

   type PropertyValue is
     new CORBA.Any;

   PropertyValue_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertyValue:1.0";

   type Property is
     record
         name : CosNotification.PropertyName;
         value : CosNotification.PropertyValue;
      end record;

   Property_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/Property:1.0";

   package IDL_SEQUENCE_CosNotification_Property is
     new CORBA.Sequences.Unbounded
        (CosNotification.Property);

   type PropertySeq is
     new CosNotification.IDL_SEQUENCE_CosNotification_Property.Sequence;

   PropertySeq_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertySeq:1.0";

   type OptionalHeaderFields is
     new CosNotification.PropertySeq;

   OptionalHeaderFields_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/OptionalHeaderFields:1.0";

   type FilterableEventBody is
     new CosNotification.PropertySeq;

   FilterableEventBody_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/FilterableEventBody:1.0";

   type QoSProperties is
     new CosNotification.PropertySeq;

   QoSProperties_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/QoSProperties:1.0";

   type AdminProperties is
     new CosNotification.PropertySeq;

   AdminProperties_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/AdminProperties:1.0";

   type EventType is
     record
         domain_name : CORBA.String;
         type_name : CORBA.String;
      end record;

   EventType_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/EventType:1.0";

   package IDL_SEQUENCE_CosNotification_EventType is
     new CORBA.Sequences.Unbounded
        (CosNotification.EventType);

   type EventTypeSeq is
     new CosNotification.IDL_SEQUENCE_CosNotification_EventType.Sequence;

   EventTypeSeq_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/EventTypeSeq:1.0";

   type PropertyRange is
     record
         low_val : CosNotification.PropertyValue;
         high_val : CosNotification.PropertyValue;
      end record;

   PropertyRange_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertyRange:1.0";

   type NamedPropertyRange is
     record
         name : CosNotification.PropertyName;
         IDL_range : CosNotification.PropertyRange;
      end record;

   NamedPropertyRange_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/NamedPropertyRange:1.0";

   package IDL_SEQUENCE_CosNotification_NamedPropertyRange is
     new CORBA.Sequences.Unbounded
        (CosNotification.NamedPropertyRange);

   type NamedPropertyRangeSeq is
     new CosNotification.IDL_SEQUENCE_CosNotification_NamedPropertyRange.Sequence;

   NamedPropertyRangeSeq_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/NamedPropertyRangeSeq:1.0";

   type QoSError_code is
     (UNSUPPORTED_PROPERTY,
      UNAVAILABLE_PROPERTY,
      UNSUPPORTED_VALUE,
      UNAVAILABLE_VALUE,
      BAD_PROPERTY,
      BAD_TYPE,
      BAD_VALUE);

   QoSError_code_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/QoSError_code:1.0";

   type PropertyError is
     record
         code : CosNotification.QoSError_code;
         name : CosNotification.PropertyName;
         available_range : CosNotification.PropertyRange;
      end record;

   PropertyError_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertyError:1.0";

   package IDL_SEQUENCE_CosNotification_PropertyError is
     new CORBA.Sequences.Unbounded
        (CosNotification.PropertyError);

   type PropertyErrorSeq is
     new CosNotification.IDL_SEQUENCE_CosNotification_PropertyError.Sequence;

   PropertyErrorSeq_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/PropertyErrorSeq:1.0";

   UnsupportedQoS : exception;

   type UnsupportedQoS_Members is
     new CORBA.Idl_Exception_Members with record
         qos_err : CosNotification.PropertyErrorSeq;
      end record;

   UnsupportedQoS_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/UnsupportedQoS:1.0";

   procedure Get_Members
     (From : Ada.Exceptions.Exception_Occurrence;
      To : out CosNotification.UnsupportedQoS_Members);

   UnsupportedAdmin : exception;

   type UnsupportedAdmin_Members is
     new CORBA.Idl_Exception_Members with record
         admin_err : CosNotification.PropertyErrorSeq;
      end record;

   UnsupportedAdmin_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/UnsupportedAdmin:1.0";

   procedure Get_Members
     (From : Ada.Exceptions.Exception_Occurrence;
      To : out CosNotification.UnsupportedAdmin_Members);

   type FixedEventHeader is
     record
         event_type : CosNotification.EventType;
         event_name : CORBA.String;
      end record;

   FixedEventHeader_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/FixedEventHeader:1.0";

   type EventHeader is
     record
         fixed_header : CosNotification.FixedEventHeader;
         variable_header : CosNotification.OptionalHeaderFields;
      end record;

   EventHeader_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/EventHeader:1.0";

   type StructuredEvent is
     record
         header : CosNotification.EventHeader;
         filterable_data : CosNotification.FilterableEventBody;
         remainder_of_body : CORBA.Any;
      end record;

   StructuredEvent_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/StructuredEvent:1.0";

   package IDL_SEQUENCE_CosNotification_StructuredEvent is
     new CORBA.Sequences.Unbounded
        (CosNotification.StructuredEvent);

   type EventBatch is
     new CosNotification.IDL_SEQUENCE_CosNotification_StructuredEvent.Sequence;

   EventBatch_Repository_Id : constant PolyORB.Std.String :=
     "IDL:omg.org/CosNotification/EventBatch:1.0";

   EventReliability : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("EventReliability");

   BestEffort : constant CORBA.Short :=
     0;

   Persistent : constant CORBA.Short :=
     1;

   ConnectionReliability : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("ConnectionReliability");

   Priority : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("Priority");

   LowestPriority : constant CORBA.Short :=
     CORBA."-"
        (32767);

   HighestPriority : constant CORBA.Short :=
     32767;

   DefaultPriority : constant CORBA.Short :=
     0;

   StartTime : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("StartTime");

   StopTime : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("StopTime");

   Timeout : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("Timeout");

   OrderPolicy : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("OrderPolicy");

   AnyOrder : constant CORBA.Short :=
     0;

   FifoOrder : constant CORBA.Short :=
     1;

   PriorityOrder : constant CORBA.Short :=
     2;

   DeadlineOrder : constant CORBA.Short :=
     3;

   DiscardPolicy : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("DiscardPolicy");

   LifoOrder : constant CORBA.Short :=
     4;

   MaximumBatchSize : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("MaximumBatchSize");

   PacingInterval : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("PacingInterval");

   StartTimeSupported : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("StartTimeSupported");

   StopTimeSupported : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("StopTimeSupported");

   MaxEventsPerConsumer : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("MaxEventsPerConsumer");

   MaxQueueLength : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("MaxQueueLength");

   MaxConsumers : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("MaxConsumers");

   MaxSuppliers : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("MaxSuppliers");

   RejectNewEvents : constant CORBA.String :=
     CORBA.To_CORBA_String
        ("RejectNewEvents");

end CosNotification;
