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