Files
PolyORB/idls/Misc/MessageRouting.idl
Jérôme Hugues 5cbaea2d7d Updated to latest CORBA specifications, marked all non
implemented features.

Patch submitted by Vadim Godunko, reviewed by Jerome Hugues.

[Imported from Perforce change 9087 at 2006-12-01 21:14:11]

Subversion-branch: /trunk/polyorb
Subversion-revision: 36621
2005-02-08 09:25:03 +00:00

168 lines
6.2 KiB
Plaintext

// File: MessageRouting.idl
// CORBA 3.0, Chapter 22
#ifndef _MESSAGE_ROUTING_IDL_
#define _MESSAGE_ROUTING_IDL_
#ifdef _PRE_3_0_COMPILER_
#pragma prefix "omg.org"
#include <orb.idl>
#include <GIOP.idl>
#include <IOP.idl>
#include <Messaging.idl>
#else
//PolyORB:NI:import ::CORBA;
//PolyORB:NI:import ::GIOP;
//PolyORB:NI:import ::IOP;
//PolyORB:NI:import ::Messaging;
#endif // _PRE_3_0_COMPILER_
//PolyORB:NI:module MessageRouting{
//PolyORB:NI:
//PolyORB:NI:#ifndef _PRE_3_0_COMPILER_
//PolyORB:NI: typeprefix MessageRouting "omg.org";
//PolyORB:NI:#endif // _PRE_3_0_COMPILER_
//PolyORB:NI:
//PolyORB:NI: // Basic routing Interoperability
//PolyORB:NI:
//PolyORB:NI: interface Router;
//PolyORB:NI: interface RouterAdmin;
//PolyORB:NI:
//PolyORB:NI: typedef sequence<Router> RouterList;
//PolyORB:NI:
//PolyORB:NI: struct MessageBody {
//PolyORB:NI: sequence<octet> body;
//PolyORB:NI: boolean byte_order;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: struct RequestMessage {
//PolyORB:NI: GIOP::Version giop_version;
//PolyORB:NI: IOP::ServiceContextList service_contexts;
//PolyORB:NI: octet response_flags;
//PolyORB:NI: octet reserved[3];
//PolyORB:NI: sequence<octet> object_key;
//PolyORB:NI: string operation;
//PolyORB:NI: MessageBody body;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: enum ReplyDisposition { TYPED, UNTYPED };
//PolyORB:NI:
//PolyORB:NI: struct ReplyDestination {
//PolyORB:NI: ReplyDisposition handler_type;
//PolyORB:NI: Messaging::ReplyHandler handler;
//PolyORB:NI: sequence<string> typed_excep_holder_repids;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: struct RequestInfo {
//PolyORB:NI: RouterList visited;
//PolyORB:NI: RouterList to_visit;
//PolyORB:NI: Object target;
//PolyORB:NI: unsigned short profile_index;
//PolyORB:NI: ReplyDestination reply_destination;
//PolyORB:NI: Messaging::PolicyValueSeq selected_qos;
//PolyORB:NI: RequestMessage payload;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: typedef sequence<RequestInfo> RequestInfoSeq;
//PolyORB:NI:
//PolyORB:NI: interface Router {
//PolyORB:NI: void send_request(in RequestInfo req);
//PolyORB:NI: void send_multiple_requests(in RequestInfoSeq reqSeq);
//PolyORB:NI:
//PolyORB:NI: readonly attribute RouterAdmin admin;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: // Polling-related interfaces
//PolyORB:NI:
//PolyORB:NI: interface UntypedReplyHandler : Messaging::ReplyHandler {
//PolyORB:NI: void reply(
//PolyORB:NI: in string operation_name,
//PolyORB:NI: in GIOP::ReplyStatusType reply_type,
//PolyORB:NI: in MessageBody reply_body);
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: exception ReplyNotAvailable { };
//PolyORB:NI:
//PolyORB:NI: interface PersistentRequest {
//PolyORB:NI: readonly attribute boolean reply_available;
//PolyORB:NI: GIOP::ReplyStatusType get_reply(
//PolyORB:NI: in boolean blocking,
//PolyORB:NI: in unsigned long timeout,
//PolyORB:NI: out MessageBody reply_body)
//PolyORB:NI: raises (ReplyNotAvailable);
//PolyORB:NI: attribute Messaging::ReplyHandler associated_handler;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: interface PersistentRequestRouter {
//PolyORB:NI: PersistentRequest create_persistent_request(
//PolyORB:NI: in unsigned short profile_index,
//PolyORB:NI: in RouterList to_visit,
//PolyORB:NI: in Object target,
//PolyORB:NI: in CORBA::PolicyList current_qos,
//PolyORB:NI: in RequestMessage payload);
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: // Router Administration
//PolyORB:NI:
//PolyORB:NI: typedef short RegistrationState;
//PolyORB:NI: const RegistrationState NOT_REGISTERED = 0;
//PolyORB:NI: const RegistrationState ACTIVE = 1;
//PolyORB:NI: const RegistrationState SUSPENDED = 2;
//PolyORB:NI:
//PolyORB:NI: exception InvalidState{
//PolyORB:NI: RegistrationState registration_state;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: valuetype RetryPolicy supports CORBA::Policy { };
//PolyORB:NI:
//PolyORB:NI: const CORBA::PolicyType IMMEDIATE_SUSPEND_POLICY_TYPE = 36;
//PolyORB:NI:
//PolyORB:NI: valuetype ImmediateSuspend : RetryPolicy { };
//PolyORB:NI:
//PolyORB:NI: const CORBA::PolicyType UNLIMITED_PING_POLICY_TYPE = 37;
//PolyORB:NI:
//PolyORB:NI: valuetype UnlimitedPing : RetryPolicy {
//PolyORB:NI: public short max_backoffs;
//PolyORB:NI: public float backoff_factor;
//PolyORB:NI: public unsigned long base_interval_seconds;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: const CORBA::PolicyType LIMITED_PING_POLICY_TYPE = 38;
//PolyORB:NI:
//PolyORB:NI: valuetype LimitedPing : UnlimitedPing {
//PolyORB:NI: public unsigned long interval_limit;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: const CORBA::PolicyType DECAY_POLICY_TYPE = 39;
//PolyORB:NI:
//PolyORB:NI: valuetype DecayPolicy supports CORBA::Policy {
//PolyORB:NI: public unsigned long decay_seconds;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: const CORBA::PolicyType RESUME_POLICY_TYPE = 40;
//PolyORB:NI:
//PolyORB:NI: valuetype ResumePolicy supports CORBA::Policy {
//PolyORB:NI: public unsigned long resume_seconds;
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI: interface RouterAdmin {
//PolyORB:NI: void register_destination(
//PolyORB:NI: in Object dest,
//PolyORB:NI: in boolean is_router,
//PolyORB:NI: in RetryPolicy retry,
//PolyORB:NI: in DecayPolicy decay);
//PolyORB:NI: void suspend_destination(
//PolyORB:NI: in Object dest,
//PolyORB:NI: in ResumePolicy resumption)
//PolyORB:NI: raises (InvalidState);
//PolyORB:NI: void resume_destination(
//PolyORB:NI: in Object dest)
//PolyORB:NI: raises (InvalidState);
//PolyORB:NI: void unregister_destination(
//PolyORB:NI: in Object dest)
//PolyORB:NI: raises (InvalidState);
//PolyORB:NI: };
//PolyORB:NI:
//PolyORB:NI:}; // module MessageRouting
#endif // _MESSAGE_ROUTING_IDL_