00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef TAO_GIOP_PIDL
00029 #define TAO_GIOP_PIDL
00030
00031 #include "tao/IOP_IOR.pidl"
00032
00033 #pragma prefix "omg.org"
00034
00035 module GIOP
00036 {
00037 typedef short AddressingDisposition;
00038 const short KeyAddr = 0;
00039 const short ProfileAddr = 1;
00040 const short ReferenceAddr = 2;
00041
00042 struct Version
00043 {
00044 octet major;
00045 octet minor;
00046 };
00047
00048 struct IORAddressingInfo
00049 {
00050 unsigned long selected_profile_index;
00051 IOP::IOR ior;
00052 };
00053
00054 union TargetAddress switch (AddressingDisposition)
00055 {
00056 case KeyAddr: CORBA::OctetSeq object_key;
00057 case ProfileAddr: IOP::TaggedProfile profile;
00058 case ReferenceAddr: IORAddressingInfo ior;
00059 };
00060
00061 enum MsgType {
00062 Request,
00063 Reply,
00064 CancelRequest,
00065 LocateRequest,
00066 LocateReply,
00067 CloseConnection,
00068 MessageError,
00069 Fragment
00070 };
00071
00072 enum ReplyStatusType {
00073 NO_EXCEPTION,
00074 USER_EXCEPTION,
00075 SYSTEM_EXCEPTION,
00076 LOCATION_FORWARD,
00077 LOCATION_FORWARD_PERM,
00078 NEEDS_ADDRESSING_MODE
00079 };
00080
00081 enum LocateStatusType {
00082 UNKNOWN_OBJECT,
00083 OBJECT_HERE,
00084 OBJECT_FORWARD,
00085 OBJECT_FORWARD_PERM,
00086 LOC_SYSTEM_EXCEPTION,
00087 LOC_NEEDS_ADDRESSING_MODE
00088 };
00089 };
00090
00091 #endif