summaryrefslogtreecommitdiff
path: root/TAO/tao/IOP.pidl
blob: c6278c09f302bc64c713e5e834c1cd01b9a9db64 (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
143
// -*- IDL -*-
/**
 * @file IOP.pidl
 *
 * $Id$
 *
 * @brief Pre-compiled IDL source for the IOP module.
 *
 * This file is used to generate IOPC.{h,i,cpp}, using the following
 * command:
 *
 *   tao_idl.exe
 *        -o orig -Gp -Gd -Ge 1
 *        -Wb,export_macro=TAO_Export
 *        -Wb,export_include=TAO_Export.h
 *        -Wb,pre_include="ace/pre.h"
 *        -Wb,post_include="ace/post.h"
 *        IOP.pidl
 *
 * and then:
 *
 * cp orig/IOPC.{h,i,cpp} .
 * patch < diffs/IOP.diff
 *
 * The code left in IOPC.{h,i,cpp} is ready for use.
 *
 */

#ifndef TAO_IOP_PIDL
#define TAO_IOP_PIDL

#include <orb.idl>

#pragma prefix "omg.org"

module IOP
{
  typedef unsigned long ProfileId;
  const ProfileId TAG_INTERNET_IOP = 0;
  const ProfileId TAG_MULTIPLE_COMPONENTS = 1;

  struct TaggedProfile {
    ProfileId       tag;
    sequence<octet> profile_data;
  };

  struct IOR {
    string                    type_id;
    sequence<TaggedProfile>   profiles;
  };

  typedef unsigned long ComponentId;
  struct TaggedComponent {
    ComponentId     tag;
    sequence<octet> component_data;
  };
  typedef sequence<TaggedComponent> MultipleComponentProfile;
  typedef sequence<TaggedComponent> TaggedComponentList;
  typedef sequence<TaggedComponent> TaggedComponentSeq;

  // @@ All security related tags are located in the Security Service
  // @@ related IDL files, in accordance with the Security Service 1.8
  // @@ specification.

  const ComponentId TAG_ORB_TYPE = 0;
  const ComponentId TAG_CODE_SETS = 1;
  const ComponentId TAG_POLICIES = 2;
  const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3;

  const ComponentId TAG_COMPLETE_OBJECT_KEY = 5;
  const ComponentId TAG_ENDPOINT_ID_POSITION = 6;
  const ComponentId TAG_LOCATION_POLICY = 12;
  const ComponentId TAG_DCE_STRING_BINDING = 100;
  const ComponentId TAG_DCE_BINDING_NAME = 101;
  const ComponentId TAG_DCE_NO_PIPES = 102;

  typedef unsigned long ServiceId;
  struct ServiceContext {
    ServiceId          context_id;
    sequence <octet>   context_data;
  };
  typedef sequence <ServiceContext> ServiceContextList;

  const ServiceId TransactionService = 0;
  const ServiceId CodeSets = 1;
  const ServiceId ChainBypassCheck = 2;
  const ServiceId ChainBypassInfo = 3;
  const ServiceId LogicalThreadId = 4;
  const ServiceId BI_DIR_IIOP = 5;
  const ServiceId SendingContextRunTime = 6;
  const ServiceId INVOCATION_POLICIES = 7;
  // const ServiceId FORWARDED_IDENTITY = 8;
  const ServiceId UnknownExceptionInfo = 9;

  // The following are defined in CORBA v2.4.2 Chapter 24 (February, 2001):
  const ServiceId RTCorbaPriority = 10;
  const ServiceId RTCorbaPriorityRange = 11;

  // The following are defined in the ptc/2000-04-04:
  // Fault Tolerant CORBA Specification, V1.0
  const ComponentId TAG_FT_GROUP = 27;
  const ComponentId TAG_FT_PRIMARY = 28;
  const ComponentId TAG_FT_HEARTBEAT_ENABLED = 29;
  const ServiceId FT_GROUP_VERSION = 12;
  const ServiceId FT_REQUEST = 13;

  // The following are not defined yet in the Unreliable Multicast
  // InterORB Protocol (orbos/2001-11-08)
  const ProfileId TAG_UIPMC = 0x54414f0c;  // @@ Get real number
  const ComponentId TAG_GROUP = 0x54414f03;  // @@ Get real number
  const ComponentId TAG_GROUP_IIOP = 0x54414f04; // @@ Get real number

  local interface Codec {
    exception InvalidTypeForEncoding {};
    exception FormatMismatch {};
    exception TypeMismatch {};

    CORBA::OctetSeq encode (in any data) raises (InvalidTypeForEncoding);
    any decode (in CORBA::OctetSeq data) raises (FormatMismatch);
    CORBA::OctetSeq encode_value (in any data) raises (InvalidTypeForEncoding);
    any decode_value (in CORBA::OctetSeq data, in CORBA::TypeCode tc)
      raises (FormatMismatch, TypeMismatch);
  };

  typedef short EncodingFormat;
  const EncodingFormat ENCODING_CDR_ENCAPS = 0;

  struct Encoding {
    EncodingFormat format;
    octet major_version;
    octet minor_version;
  };

  local interface CodecFactory {
    exception UnknownEncoding {};

    Codec create_codec (in Encoding enc) raises (UnknownEncoding);
  };
};

#pragma prefix ""

#endif  /* TAO_IOP_PIDL */