div class="twikiTopBar">

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

CosNotification.idl

00001 //File: CosNotification.idl
00002 //Part of the Notification Service
00003 
00004 #ifndef _COS_NOTIFICATION_IDL_
00005 #define _COS_NOTIFICATION_IDL_
00006 
00007 // omniORB specific pragmas to insert extra includes into the stub header.
00008 
00009 #pragma prefix "omg.org"
00010 
00011 module CosNotification {
00012 
00013         typedef string Istring;
00014         typedef Istring PropertyName;
00015         typedef any PropertyValue;
00016 
00017         struct Property {
00018                 PropertyName name;
00019                 PropertyValue value;
00020         };
00021         typedef sequence<Property> PropertySeq;
00022 
00023         // The following are the same, but serve different purposes.
00024         typedef PropertySeq OptionalHeaderFields;
00025         typedef PropertySeq FilterableEventBody;
00026         typedef PropertySeq QoSProperties;
00027         typedef PropertySeq AdminProperties;
00028 
00029         struct EventType {
00030                 string domain_name;
00031                 string type_name;
00032         };
00033         typedef sequence<EventType> EventTypeSeq;
00034 
00035         struct PropertyRange {
00036                 PropertyValue low_val;
00037                 PropertyValue high_val;
00038         };
00039 
00040         struct NamedPropertyRange {
00041                 PropertyName name;
00042                 PropertyRange range;
00043         };
00044         typedef sequence<NamedPropertyRange> NamedPropertyRangeSeq;
00045 
00046         enum QoSError_code {
00047                 UNSUPPORTED_PROPERTY,
00048                 UNAVAILABLE_PROPERTY,
00049                 UNSUPPORTED_VALUE,
00050                 UNAVAILABLE_VALUE,
00051                 BAD_PROPERTY,
00052                 BAD_TYPE,
00053                 BAD_VALUE
00054         };
00055 
00056         struct PropertyError {
00057                 QoSError_code code;
00058                 PropertyName name;
00059                 PropertyRange available_range;
00060         };
00061         typedef sequence<PropertyError> PropertyErrorSeq;
00062 
00063         exception UnsupportedQoS { PropertyErrorSeq qos_err; };
00064         exception UnsupportedAdmin { PropertyErrorSeq admin_err; };
00065 
00066         // Define the Structured Event structure
00067         struct FixedEventHeader { 
00068                 EventType event_type;
00069                 string event_name;
00070         };
00071 
00072         struct EventHeader {
00073                 FixedEventHeader fixed_header;
00074                 OptionalHeaderFields variable_header;
00075         };
00076 
00077         struct StructuredEvent {
00078                 EventHeader header;
00079                 FilterableEventBody filterable_data;
00080                 any remainder_of_body;
00081         }; // StructuredEvent
00082         typedef sequence<StructuredEvent> EventBatch;
00083 
00084         // The following constant declarations define the standard
00085         // QoS property names and the associated values each property
00086         // can take on. The name/value pairs for each standard property
00087         // are grouped, beginning with a string constant defined for the
00088         // property name, followed by the values the property can take on.
00089 
00090         const string EventReliability = "EventReliability";
00091         const short BestEffort = 0;
00092         const short Persistent = 1;
00093 
00094         const string ConnectionReliability = "ConnectionReliability";
00095         // Can take on the same values as EventReliability
00096 
00097         const string Priority = "Priority";
00098         const short LowestPriority = -32767;
00099         const short HighestPriority = 32767;
00100         const short DefaultPriority = 0;
00101 
00102         const string StartTime = "StartTime";
00103         // StartTime takes a value of type TimeBase::UtcT.
00104 
00105         const string StopTime = "StopTime";
00106         // StopTime takes a value of type TimeBase::UtcT.
00107 
00108         const string Timeout = "Timeout";
00109         // Timeout takes on a value of type TimeBase::TimeT
00110 
00111         const string OrderPolicy = "OrderPolicy";
00112         const short AnyOrder = 0;
00113         const short FifoOrder = 1;
00114         const short PriorityOrder = 2;
00115         const short DeadlineOrder = 3;
00116 
00117         const string DiscardPolicy = "DiscardPolicy";
00118         // DiscardPolicy takes on the same values as OrderPolicy, plus
00119         const short LifoOrder = 4;
00120 
00121         const string MaximumBatchSize = "MaximumBatchSize";
00122         // MaximumBatchSize takes on a value of type long
00123 
00124         const string PacingInterval = "PacingInterval";
00125         // PacingInterval takes on a value of type TimeBase::TimeT
00126 
00127         const string StartTimeSupported = "StartTimeSupported";
00128         // StartTimeSupported takes on a boolean value
00129 
00130         const string StopTimeSupported = "StopTimeSupported";
00131         // StopTimeSupported takes on a boolean value
00132 
00133         const string MaxEventsPerConsumer = "MaxEventsPerConsumer";
00134         // MaxEventsPerConsumer takes on a value of type long
00135 
00136         interface QoSAdmin {
00137 
00138                 QoSProperties get_qos();
00139 
00140                 void set_qos ( in QoSProperties qos)
00141                         raises ( UnsupportedQoS );
00142 
00143                 void validate_qos (
00144                                 in QoSProperties required_qos,
00145                                 out NamedPropertyRangeSeq available_qos )
00146                         raises ( UnsupportedQoS );
00147 
00148         }; // QosAdmin
00149 
00150         // Admin properties are defined in similar manner as QoS
00151         // properties. The only difference is that these properties
00152         // are related to channel administration policies, as opposed 
00153         // message quality of service
00154 
00155         const string MaxQueueLength = "MaxQueueLength";
00156         // MaxQueueLength takes on a value of type long
00157 
00158         const string MaxConsumers = "MaxConsumers";
00159         // MaxConsumers takes on a value of type long
00160 
00161         const string MaxSuppliers = "MaxSuppliers";
00162         // MaxSuppliers takes on a value of type long
00163 
00164         const string RejectNewEvents = "RejectNewEvents";
00165         // RejectNewEvents takes on a value of type Boolean
00166 
00167         interface AdminPropertiesAdmin {
00168 
00169                 AdminProperties get_admin();
00170 
00171                 void set_admin (in AdminProperties admin)
00172                         raises ( UnsupportedAdmin);
00173 
00174         }; // AdminPropertiesAdmin
00175 
00176 }; // CosNotification
00177 
00178 #endif /* _COS_NOTIFICATION_IDL_ */

CosNotification.idl Source File | generated on Sun Apr 29 02:00:57 2007 by Doxygen 1.4.1 for DWARF