Previous | Table of Contents | Next |
The following module has been added by CORBA Messaging:
// IDL// File: Messaging.idl#ifndef _MESSAGING_IDL_#define _MESSAGING_IDL_
import ::CORBA;import ::IOP;import ::TimeBase;module Messaging {
typeprefix Messaging “omg.org?;
//// 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 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 = SYNC_WITH_TRANSPORT) const CORBA::PolicyType SYNC_SCOPE_POLICY_TYPE = 24; local interface
SyncScopePolicy : CORBA::Policy {
readonly attribute SyncScope synchronization; };
// Priority Policiesconst 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<octet> | pvalue; | ||||
}; |
typedef sequence<PolicyValue> PolicyValueSeq;
//// Exception Delivery in the Callback Model//
native UserExceptionBase;
valuetype ExceptionHolder { void raise_exception() raises (UserExceptionBase); void raise_exception_with_list(
in CORBA::ExceptionList exc_list) in Dynamic::ExceptionList exc_list)
raises (UserExceptionBase);
private boolean is_system_exception;
private boolean byte_order;
private sequence<octet> marshaled_exception;
};
//// Base interface for the Callback model//
interface ReplyHandler { };
//// Base value for the Polling model//
valuetype Poller : CORBA::Pollable {
readonly attribute Object | operation_target; | ||||
readonly attribute string | operation_name; | ||||
attribute ReplyHandler | associated_handler; | ||||
readonly attribute boolean | is_from_poller; | ||||
private Object | target; | ||||
private string | op_name; | ||||
}; | |||||
}; | |||||
#endif |