summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging/Messaging_No_Impl.pidl
blob: c2c9edcd90b99e0b138fd82a135f7f873ba6d7a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// -*- IDL -*-

//=============================================================================
/**
 *  @file   Messaging_No_Impl.pidl
 *
 *  $Id$
 *
 * This file was used to generate the code in
 * Messaging_No_Impl{C,S,S_T}.{h,i,cpp} and as the name implies is not
 * implemented in TAO, yet.
 *
 * The command used to generate code from this file is:
 *
 *   tao_idl
 *        -o orig -Gp -Gd -Ge 1 -GT -Sc
 *        -Wb,export_macro=TAO_Messaging_Export
 *        -Wb,export_include=messaging_export.h
 *        -Wb,pre_include="ace/pre.h"
 *        -Wb,post_include="ace/post.h" -I$(TAO_ROOT)
 *        Messaging_No_Impl.pidl
 *
 * after the file is generated a patch must be applied:
 *
 *   cp orig/Messaging_No_Impl{C,S,S_T}.{h,i,cpp} .
 *   patch < diffs/Messaging.diff
 *
 * The patch eliminates cycles in the include dependencies.
 *
 * Note: to update the patch file after re-generating the code use:
 *
 *   for i in Messaging_No_Impl{C,S,S_T}.{h,i,cpp}; do
 *     diff -uBbw orig/$i $i;
 *   done > diffs/Messaging_No_Impl.diff
 */
//=============================================================================

#ifndef TAO_MESSAGING_NO_IMPL_PIDL
#define TAO_MESSAGING_NO_IMPL_PIDL

#include "tao/TimeBase.pidl"
#include "tao/Policy.pidl"
#include "tao/Pollable.pidl"


#pragma prefix "omg.org"

module Messaging
{
  //
  // Messaging Quality of Service
  //

  typedef short Priority;

  typedef short RebindMode;
  const RebindMode TRANSPARENT  = 0;
  const RebindMode NO_REBIND    = 1;
  const RebindMode NO_RECONNECT = 2;

  typedef short RoutingType;
  const RoutingType ROUTE_NONE              = 0;
  const RoutingType ROUTE_FORWARD           = 1;
  const RoutingType ROUTE_STORE_AND_FORWARD = 2;

  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;
  };

    // 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 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;
  };
};

#endif /*TAO_MESSAGING_NO_IMPL_PIDL*/