~ubuntu-branches/ubuntu/breezy/ace/breezy

« back to all changes in this revision

Viewing changes to TAO/tao/PortableInterceptor.pidl

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad, Benjamin Montgomery, Adam Conrad
  • Date: 2005-09-18 22:51:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 sarge) (0.1.2 woody)
  • Revision ID: james.westby@ubuntu.com-20050918225138-seav22q6fyylb536
Tags: 5.4.7-3ubuntu1
[ Benjamin Montgomery ]
* Added a patch for amd64 and powerpc that disables the compiler
  option -fvisibility-inlines-hidden

[ Adam Conrad ]
* Added DPATCH_OPTION_CPP=1 to debian/patches/00options to make
  Benjamin's above changes work correctly with dpatch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// -*- IDL -*-
2
 
 
3
 
/**
4
 
 * @file PortableInterceptor.pidl
5
 
 *
6
 
 * PortableInterceptor.pidl,v 1.23 2003/12/24 14:26:57 bala Exp
7
 
 *
8
 
 * @brief Pre-compiled IDL source for the PortableInterceptor
9
 
 * components in the ORB.
10
 
 *
11
 
 * This file contains the interface definitions for "Portable"
12
 
 * Interceptor support.
13
 
 * The following is from orbos/99-12-02 Portable Interceptors spec,
14
 
 * the full IDL is downloadable from orbos/99-12-02.
15
 
 *
16
 
 * Additional updates from ptc/00-08-05 are also included.  Changes
17
 
 * include:
18
 
 *    - addition of the Interceptor::destroy() method
19
 
 *    - move of CodecFactory and Codec interfaces to the IOP module
20
 
 *
21
 
 * This file was used to generate the code in PortableInterceptorC.*
22
 
 * The command used to generate code is:
23
 
 *
24
 
 *  tao_idl
25
 
 *     -o orig -Gp -Gd -Ge 1 -GT -GA
26
 
 *          -Wb,export_macro=TAO_Export
27
 
 *          -Wb,pre_include="ace/pre.h"
28
 
 *          -Wb,post_include="ace/post.h"
29
 
 *          PortableInterceptor.pidl
30
 
 *
31
 
 * Patches for changes to the generated code are available in the
32
 
 * `diffs' directory.
33
 
 */
34
 
 
35
 
// File: PortableInterceptor.idl
36
 
#ifndef _PORTABLE_INTERCEPTOR_IDL_
37
 
#define _PORTABLE_INTERCEPTOR_IDL_
38
 
 
39
 
#include <PI_Forward.pidl>
40
 
#include <Current.pidl>
41
 
#include <Dynamic.pidl>
42
 
#include <Messaging_SyncScope.pidl>
43
 
#include <IOP_Codec.pidl>
44
 
#include <IOP_IOR.pidl>
45
 
 
46
 
module PortableInterceptor {
47
 
 
48
 
  typeprefix PortableInterceptor "omg.org";
49
 
 
50
 
  local interface Interceptor 
51
 
  {
52
 
    readonly attribute string name;
53
 
    void destroy ();
54
 
  };
55
 
 
56
 
  exception ForwardRequest 
57
 
  {
58
 
    Object forward;
59
 
    boolean permanent;
60
 
  };
61
 
 
62
 
  typedef short ReplyStatus;
63
 
 
64
 
  // Valid reply_status values:
65
 
  const ReplyStatus SUCCESSFUL = 0;
66
 
  const ReplyStatus SYSTEM_EXCEPTION = 1;
67
 
  const ReplyStatus USER_EXCEPTION = 2;
68
 
  const ReplyStatus LOCATION_FORWARD = 3;
69
 
  const ReplyStatus LOCATION_FORWARD_PERMANENT = 4;  // @@ TO BE REMOVED
70
 
  const ReplyStatus TRANSPORT_RETRY = 5;  // @@ TO BE RENUMBERED to 4
71
 
  const ReplyStatus UNKNOWN = 6;          // @@ TO BE RENUMBERED to 5
72
 
 
73
 
  typedef unsigned long SlotId;
74
 
 
75
 
  exception InvalidSlot {};
76
 
 
77
 
  local interface Current : CORBA::Current 
78
 
  {
79
 
    any get_slot (in SlotId id) raises (InvalidSlot);
80
 
    void set_slot (in SlotId id, in any data) raises (InvalidSlot);
81
 
  };
82
 
 
83
 
  local interface RequestInfo 
84
 
  {
85
 
    readonly attribute unsigned long request_id;
86
 
    readonly attribute string operation;
87
 
    readonly attribute Dynamic::ParameterList arguments;
88
 
    readonly attribute Dynamic::ExceptionList exceptions;
89
 
    readonly attribute Dynamic::ContextList contexts;
90
 
    readonly attribute Dynamic::RequestContext operation_context;
91
 
    readonly attribute any result;
92
 
    readonly attribute boolean response_expected;
93
 
    readonly attribute Messaging::SyncScope sync_scope;
94
 
    readonly attribute ReplyStatus reply_status;
95
 
    readonly attribute Object forward_reference;
96
 
    any get_slot (in SlotId id) raises (InvalidSlot);
97
 
    IOP::ServiceContext get_request_service_context (in IOP::ServiceId id);
98
 
    IOP::ServiceContext get_reply_service_context (in IOP::ServiceId id);
99
 
  };
100
 
 
101
 
  local interface ClientRequestInfo : RequestInfo 
102
 
  {
103
 
    readonly attribute Object target;
104
 
    readonly attribute Object effective_target;
105
 
    readonly attribute IOP::TaggedProfile effective_profile;
106
 
    readonly attribute any received_exception;
107
 
    readonly attribute CORBA::RepositoryId received_exception_id;
108
 
    IOP::TaggedComponent get_effective_component (in IOP::ComponentId id);
109
 
    IOP::TaggedComponentSeq get_effective_components (in IOP::ComponentId id);
110
 
    CORBA::Policy get_request_policy (in CORBA::PolicyType type);
111
 
    void add_request_service_context (
112
 
      in IOP::ServiceContext service_context,
113
 
      in boolean replace);
114
 
  };
115
 
 
116
 
  local interface ServerRequestInfo : RequestInfo 
117
 
  {
118
 
    readonly attribute any sending_exception;
119
 
    readonly attribute ServerId server_id;
120
 
    readonly attribute ORBId orb_id;
121
 
    readonly attribute AdapterName adapter_name;
122
 
    readonly attribute CORBA::OctetSeq object_id;
123
 
    readonly attribute CORBA::OctetSeq adapter_id;
124
 
    readonly attribute CORBA::RepositoryId target_most_derived_interface;
125
 
    CORBA::Policy get_server_policy (in CORBA::PolicyType type);
126
 
    void set_slot (in SlotId id, in any data) raises (InvalidSlot);
127
 
    boolean target_is_a (in CORBA::RepositoryId id);
128
 
    void add_reply_service_context (
129
 
      in IOP::ServiceContext service_context,
130
 
      in boolean replace);
131
 
  };
132
 
 
133
 
  local interface ClientRequestInterceptor : Interceptor 
134
 
  {
135
 
    void send_request  (in ClientRequestInfo ri) raises (ForwardRequest);
136
 
    void send_poll (in ClientRequestInfo ri);
137
 
    void receive_reply (in ClientRequestInfo ri);
138
 
    void receive_exception (in ClientRequestInfo ri) raises (ForwardRequest);
139
 
    void receive_other (in ClientRequestInfo ri) raises (ForwardRequest);
140
 
  };
141
 
 
142
 
  local interface ServerRequestInterceptor : Interceptor 
143
 
  {
144
 
    /// Proprietary method in TAO for fault tolerance
145
 
    void tao_ft_interception_point (in ServerRequestInfo ri, out CORBA::OctetSeq os) raises (ForwardRequest);
146
 
    void receive_request_service_contexts (in ServerRequestInfo ri) raises (ForwardRequest);
147
 
    void receive_request (in ServerRequestInfo ri) raises (ForwardRequest);
148
 
    void send_reply (in ServerRequestInfo ri);
149
 
    void send_exception (in ServerRequestInfo ri) raises (ForwardRequest);
150
 
    void send_other (in ServerRequestInfo ri) raises (ForwardRequest);
151
 
  };
152
 
 
153
 
  local interface PolicyFactory
154
 
  {
155
 
    CORBA::Policy create_policy (in CORBA::PolicyType type, in any value)
156
 
      raises (CORBA::PolicyError);
157
 
  };
158
 
 
159
 
  local interface IORInterceptor;
160
 
 
161
 
  local interface ORBInitInfo 
162
 
  {
163
 
    typedef string ObjectId;
164
 
 
165
 
    exception DuplicateName 
166
 
    {
167
 
      string name;
168
 
    };
169
 
 
170
 
    exception InvalidName {};
171
 
 
172
 
    readonly attribute CORBA::StringSeq arguments;
173
 
    readonly attribute string orb_id;
174
 
    readonly attribute IOP::CodecFactory codec_factory;
175
 
 
176
 
    void register_initial_reference (in ObjectId id, in Object obj)
177
 
      raises (InvalidName);
178
 
    Object resolve_initial_references (in ObjectId id) 
179
 
      raises (InvalidName);
180
 
    void add_client_request_interceptor (
181
 
      in ClientRequestInterceptor interceptor)
182
 
      raises (DuplicateName);
183
 
    void add_server_request_interceptor (
184
 
      in ServerRequestInterceptor interceptor)
185
 
      raises (DuplicateName);
186
 
    void add_ior_interceptor (in IORInterceptor interceptor)
187
 
      raises (DuplicateName);
188
 
    SlotId allocate_slot_id ();
189
 
    void register_policy_factory (
190
 
      in CORBA::PolicyType type,
191
 
      in PolicyFactory policy_factory);
192
 
  };
193
 
 
194
 
  local interface ORBInitializer 
195
 
  {
196
 
    void pre_init (in ORBInitInfo info);
197
 
    void post_init (in ORBInitInfo info);
198
 
  };
199
 
 
200
 
};
201
 
 
202
 
#endif  /* _PORTABLE_INTERCEPTOR_IDL_ */