aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cosNotification/src/CosNotification.idl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cosNotification/src/CosNotification.idl')
-rw-r--r--lib/cosNotification/src/CosNotification.idl146
1 files changed, 146 insertions, 0 deletions
diff --git a/lib/cosNotification/src/CosNotification.idl b/lib/cosNotification/src/CosNotification.idl
new file mode 100644
index 0000000000..e080b44b0c
--- /dev/null
+++ b/lib/cosNotification/src/CosNotification.idl
@@ -0,0 +1,146 @@
+#ifndef _COS_NOTIFICATION_IDL_
+#define _COS_NOTIFICATION_IDL_
+
+#pragma prefix "omg.org"
+
+#include"CosEventChannelAdmin.idl"
+#include"CosEventComm.idl"
+
+module CosNotification {
+ 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 short RejectNewEvents = 5;
+ 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
+ interface AdminPropertiesAdmin {
+ AdminProperties get_admin();
+ void set_admin (in AdminProperties admin)
+ raises ( UnsupportedAdmin);
+ };// AdminPropertiesAdmin
+}; // CosNotification
+
+#endif /* ifndef _COS_NOTIFICATION_IDL_ */
+