00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TAO_GIOP_UTILS_H
00018 #define TAO_GIOP_UTILS_H
00019
00020 #include "ace/pre.h"
00021
00022 #include "tao/Object.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "tao/IOP_IORC.h"
00029
00030 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00031 class ACE_Time_Value;
00032 ACE_END_VERSIONED_NAMESPACE_DECL
00033
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035
00036 class TAO_Transport;
00037
00038
00039
00040
00041
00042
00043 typedef enum GIOP_Messages
00044 {
00045
00046 TAO_GIOP_REQUEST = 0,
00047 TAO_GIOP_REPLY = 1,
00048 TAO_GIOP_CANCELREQUEST = 2,
00049 TAO_GIOP_LOCATEREQUEST = 3,
00050 TAO_GIOP_LOCATEREPLY = 4,
00051 TAO_GIOP_CLOSECONNECTION = 5,
00052 TAO_GIOP_MESSAGERROR = 6,
00053 TAO_GIOP_FRAGMENT = 7
00054 } TAO_GIOP_Message_Type;
00055
00056
00057 typedef enum GIOP_LocateStatusType
00058 {
00059 TAO_GIOP_UNKNOWN_OBJECT,
00060 TAO_GIOP_OBJECT_HERE,
00061 TAO_GIOP_OBJECT_FORWARD,
00062 TAO_GIOP_OBJECT_FORWARD_PERM,
00063 TAO_GIOP_LOC_SYSTEM_EXCEPTION,
00064 TAO_GIOP_LOC_NEEDS_ADDRESSING_MODE
00065 }TAO_GIOP_Locate_Status_Type;
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077 class TAO_Export TAO_GIOP_Locate_Status_Msg
00078 {
00079 public:
00080
00081
00082 CORBA::Object_var forward_location_var;
00083
00084
00085
00086 TAO_GIOP_Locate_Status_Type status;
00087 };
00088
00089
00090 typedef enum GIOP_ReplyStatusType
00091 {
00092
00093 TAO_GIOP_NO_EXCEPTION,
00094
00095
00096 TAO_GIOP_USER_EXCEPTION,
00097
00098
00099 TAO_GIOP_SYSTEM_EXCEPTION,
00100
00101
00102 TAO_GIOP_LOCATION_FORWARD,
00103
00104
00105 TAO_GIOP_LOCATION_FORWARD_PERM,
00106
00107
00108 TAO_GIOP_NEEDS_ADDRESSING_MODE
00109
00110 } TAO_GIOP_Reply_Status_Type;
00111
00112
00113
00114
00115
00116
00117
00118
00119 class TAO_Export TAO_GIOP_ReplyHeader
00120 {
00121 public:
00122
00123 IOP::ServiceContextList service_info;
00124
00125
00126 CORBA::ULong request_id;
00127
00128
00129 TAO_GIOP_Reply_Status_Type reply_status;
00130 };
00131
00132
00133
00134
00135
00136
00137
00138 class TAO_Export TAO_GIOP_Utils
00139 {
00140 public:
00141 static int read_bytes_input (TAO_Transport *transport,
00142 TAO_InputCDR &cdr,
00143 CORBA::ULong buf_size,
00144 ACE_Time_Value *value = 0);
00145
00146 static ssize_t read_buffer (TAO_Transport *transport,
00147 char *buf,
00148 size_t len,
00149 ACE_Time_Value *max_wait_time = 0);
00150 };
00151
00152 TAO_END_VERSIONED_NAMESPACE_DECL
00153
00154 #include "ace/post.h"
00155 #endif