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