// // $Id$ // // ================================================================ // // = LIBRARY // TAO // // = FILENAME // Policy.pidl // // = DESCRIPTION // This file was used to generate the code in Messaging{C,S,S_T}.{h,i,cpp} // // The command used to generate code from this file is: // // tao_idl.exe -o orig -Gp -Gd -Ge 1 -Gv \ // -Wb,export_macro=TAO_Export \ // -Wb,export_include=corbafwd.h \ // -Wb,pre_include="ace/pre.h" \ // -Wb,post_include="ace/post.h" \ // Messaging.pidl // // after the file is generated a patch must be applied. The patch // fixes the interface repository IDs, disables the code under // certain configurations, and eliminates cycles in the include // dependencies. Those changes are required because the generated // code is part of the TAO library, it hardly makes any sense to // change the IDL compiler to support changes that are very // occasional. // // ================================================================ #include "TimeBase.pidl" #include "IOP.pidl" #include "Policy.pidl" #include "Pollable.pidl" #pragma prefix "omg.org" module Messaging { // // Messaging Quality of Service // typedef short RebindMode; const RebindMode TRANSPARENT = 0; const RebindMode NO_REBIND = 1; const RebindMode NO_RECONNECT = 2; typedef short SyncScope; const SyncScope SYNC_NONE = 0; const SyncScope SYNC_WITH_TRANSPORT = 1; const SyncScope SYNC_WITH_SERVER = 2; const SyncScope SYNC_WITH_TARGET = 3; // = TAO specific. const SyncScope SYNC_EAGER_BUFFERING = SYNC_NONE; const SyncScope SYNC_DELAYED_BUFFERING = -2; typedef short RoutingType; const RoutingType ROUTE_NONE = 0; const RoutingType ROUTE_FORWARD = 1; const RoutingType ROUTE_STORE_AND_FORWARD = 2; typedef TimeBase::TimeT Timeout; typedef short Priority; typedef unsigned short Ordering; const Ordering ORDER_ANY = 0x01; const Ordering ORDER_TEMPORAL = 0x02; const Ordering ORDER_PRIORITY = 0x04; const Ordering ORDER_DEADLINE = 0x08; // // Locally-Constrained Policy Objects // // Rebind Policy (default = TRANSPARENT) const CORBA::PolicyType REBIND_POLICY_TYPE = 23; local interface RebindPolicy : CORBA::Policy { readonly attribute RebindMode rebind_mode; }; // Synchronization Policy (default = WITH_TRANSPORT) const CORBA::PolicyType SYNC_SCOPE_POLICY_TYPE = 24; local interface SyncScopePolicy : CORBA::Policy { readonly attribute SyncScope synchronization; }; // Priority Policies const CORBA::PolicyType REQUEST_PRIORITY_POLICY_TYPE = 25; struct PriorityRange { Priority min; Priority max; }; local interface RequestPriorityPolicy : CORBA::Policy { readonly attribute PriorityRange priority_range; }; const CORBA::PolicyType REPLY_PRIORITY_POLICY_TYPE = 26; local interface ReplyPriorityPolicy : CORBA::Policy { readonly attribute PriorityRange priority_range; }; // Timeout Policies const CORBA::PolicyType REQUEST_START_TIME_POLICY_TYPE = 27; local interface RequestStartTimePolicy : CORBA::Policy { readonly attribute TimeBase::UtcT start_time; }; const CORBA::PolicyType REQUEST_END_TIME_POLICY_TYPE = 28; local interface RequestEndTimePolicy : CORBA::Policy { readonly attribute TimeBase::UtcT end_time; }; const CORBA::PolicyType REPLY_START_TIME_POLICY_TYPE = 29; local interface ReplyStartTimePolicy : CORBA::Policy { readonly attribute TimeBase::UtcT start_time; }; const CORBA::PolicyType REPLY_END_TIME_POLICY_TYPE = 30; local interface ReplyEndTimePolicy : CORBA::Policy { readonly attribute TimeBase::UtcT end_time; }; const CORBA::PolicyType RELATIVE_REQ_TIMEOUT_POLICY_TYPE = 31; local interface RelativeRequestTimeoutPolicy : CORBA::Policy { readonly attribute TimeBase::TimeT relative_expiry; }; const CORBA::PolicyType RELATIVE_RT_TIMEOUT_POLICY_TYPE = 32; local interface RelativeRoundtripTimeoutPolicy : CORBA::Policy { readonly attribute TimeBase::TimeT relative_expiry; }; const CORBA::PolicyType ROUTING_POLICY_TYPE = 33; struct RoutingTypeRange { RoutingType min; RoutingType max; }; local interface RoutingPolicy : CORBA::Policy { readonly attribute RoutingTypeRange routing_range; }; const CORBA::PolicyType MAX_HOPS_POLICY_TYPE = 34; local interface MaxHopsPolicy : CORBA::Policy { readonly attribute unsigned short max_hops; }; // Router Delivery-ordering Policy (default = ORDER_TEMPORAL) const CORBA::PolicyType QUEUE_ORDER_POLICY_TYPE = 35; local interface QueueOrderPolicy : CORBA::Policy { readonly attribute Ordering allowed_orders; }; // // Propagation of QoS Policies // struct PolicyValue { CORBA::PolicyType ptype; sequence pvalue; }; typedef sequence PolicyValueSeq; const IOP::ComponentId TAG_POLICIES = 2; const IOP::ServiceId INVOCATION_POLICIES = 2; // // Exception Delivery in the Callback Model // #if defined(NO_VALUE) struct ExceptionHolder { boolean is_system_exception; boolean byte_order; sequence marshaled_exception; }; #else valuetype ExceptionHolder { public boolean is_system_exception; public boolean byte_order; public sequence marshaled_exception; }; #endif // // Base interface for the Callback model // interface ReplyHandler { }; #if 0 // // Base value for the Polling model // #if defined(NO_VALUE) local interface Poller : CORBA_Pollable { readonly attribute Object operation_target; readonly attribute string operation_name; attribute ReplyHandler associated_handler; readonly attribute boolean is_from_poller; readonly attribute Object target; readonly attribute string op_name; }; #else valuetype Poller supports CORBA_Pollable { readonly attribute Object operation_target; readonly attribute string operation_name; attribute ReplyHandler associated_handler; readonly attribute boolean is_from_poller; public Object target; public string op_name; }; #endif #endif /* 0 */ }; #pragma prefix ""