#include <TimeBase.idl> | |
#include <IOP.idl> | |
#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; | |
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; | |
interface RebindPolicy : CORBA::Policy { | |
readonly attribute RebindMode rebind_mode; | |
}; | |
// Synchronization Policy (default = SYNC_WITH_TRANSPORT) | |
const CORBA::PolicyType SYNC_SCOPE_POLICY_TYPE = 24; | |
interface SyncScopePolicy : CORBA::Policy { | |
readonly attribute SyncScope synchronization; | |
}; | |
// Priority Policies | |
const CORBA::PolicyType REQUEST_PRIORITY_POLICY_TYPE = 25; | |
struct PriorityRange { | |
Priority min; | |
Priority max; | |
}; | |
interface RequestPriorityPolicy : CORBA::Policy { | |
readonly attribute PriorityRange priority_range; | |
}; | |
const CORBA::PolicyType REPLY_PRIORITY_POLICY_TYPE = 26; | |
interface ReplyPriorityPolicy : CORBA::Policy { | |
readonly attribute PriorityRange priority_range; | |
}; | |
// Timeout Policies | |
const CORBA::PolicyType REQUEST_START_TIME_POLICY_TYPE = 27; | |
interface RequestStartTimePolicy : CORBA::Policy { | |
readonly attribute TimeBase::UtcT start_time; | |
}; | |
const CORBA::PolicyType REQUEST_END_TIME_POLICY_TYPE = 28; | |
interface RequestEndTimePolicy : CORBA::Policy { | |
readonly attribute TimeBase::UtcT end_time; | |
}; | |
const CORBA::PolicyType REPLY_START_TIME_POLICY_TYPE = 29; | |
interface ReplyStartTimePolicy : CORBA::Policy { | |
readonly attribute TimeBase::UtcT start_time; | |
}; | |
const CORBA::PolicyType REPLY_END_TIME_POLICY_TYPE = 30; | |
interface ReplyEndTimePolicy : CORBA::Policy { | |
readonly attribute TimeBase::UtcT end_time; | |
}; | |
const CORBA::PolicyType RELATIVE_REQ_TIMEOUT_POLICY_TYPE = | |
31; | |
interface RelativeRequestTimeoutPolicy : CORBA::Policy { | |
readonly attribute TimeBase::TimeT relative_expiry; | |
}; | |
const CORBA::PolicyType RELATIVE_RT_TIMEOUT_POLICY_TYPE = 32; | |
interface RelativeRoundtripTimeoutPolicy : CORBA::Policy { | |
readonly attribute TimeBase::TimeT relative_expiry; | |
}; | |
const CORBA::PolicyType ROUTING_POLICY_TYPE = 33; | |
struct RoutingTypeRange { | |
RoutingType min; | |
RoutingType max; | |
}; | |
interface RoutingPolicy : CORBA::Policy { | |
readonly attribute RoutingTypeRange routing_range; | |
}; | |
const CORBA::PolicyType MAX_HOPS_POLICY_TYPE = 34; | |
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; | |
interface QueueOrderPolicy : CORBA::Policy { | |
readonly attribute Ordering allowed_orders; | |
}; | |
// | |
// Propagation of QoS Policies | |
// | |
struct PolicyValue { | |
CORBA::PolicyType ptype; | |
sequence<octet> pvalue; | |
}; | |
typedef sequence<PolicyValue> PolicyValueSeq; | |
const IOP::ComponentId TAG_POLICIES = 2; | |
const IOP::ServiceId INVOCATION_POLICIES = 2; | |
// | |
// Exception Delivery in the Callback Model | |
// | |
/* | |
value ExceptionHolder { | |
boolean is_system_exception; | |
boolean byte_order; | |
sequence<octet> marshaled_exception; | |
}; | |
*/ | |
// | |
// Base interface for the Callback model | |
// | |
interface ReplyHandler { }; | |
// | |
// Base value for the Polling model | |
// | |
/* | |
value Poller supports CORBA::Pollable { | |
readonly attribute Object operation_target; | |
readonly attribute string operation_name; | |
attribute ReplyHandler associated_handler; | |
readonly attribute boolean is_from_poller; | |
Object target; | |
string op_name; | |
}; | |
*/ | |
}; |