00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ACE_NAME_REQUEST_REPLY_H
00021 #define ACE_NAME_REQUEST_REPLY_H
00022 #include "ace/pre.h"
00023
00024 #include "ace/Time_Value.h"
00025
00026 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00027 # pragma once
00028 #endif
00029
00030 #include "ace/SString.h"
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class ACE_Export ACE_Name_Request
00041 {
00042 public:
00043
00044 enum Constants
00045 {
00046 BIND = 01,
00047 REBIND = 02,
00048 RESOLVE = 03,
00049 UNBIND = 04,
00050 LIST_NAMES = 05,
00051 LIST_VALUES = 015,
00052 LIST_TYPES = 025,
00053 LIST_NAME_ENTRIES = 06,
00054 LIST_VALUE_ENTRIES = 016,
00055 LIST_TYPE_ENTRIES = 026,
00056 MAX_ENUM = 11,
00057 MAX_LIST = 3,
00058
00059
00060
00061 OP_TABLE_MASK = 07,
00062
00063 LIST_OP_MASK = 030,
00064
00065
00066 MAX_NAME_LENGTH = MAXPATHLEN + 1
00067 };
00068
00069
00070 ACE_Name_Request (void);
00071
00072
00073 ACE_Name_Request (ACE_INT32 msg_type,
00074 const ACE_USHORT16 name[],
00075 const ACE_UINT32 name_length,
00076 const ACE_USHORT16 value[],
00077 const ACE_UINT32 value_length,
00078 const char type[],
00079 const ACE_UINT32 type_length,
00080 ACE_Time_Value *timeout = 0);
00081
00082
00083
00084 void init (void);
00085
00086
00087 ACE_UINT32 length (void) const;
00088 void length (ACE_UINT32);
00089
00090
00091 ACE_INT32 msg_type (void) const;
00092 void msg_type (ACE_INT32);
00093
00094
00095 ACE_UINT32 block_forever (void) const;
00096 void block_forever (ACE_UINT32);
00097
00098
00099 ACE_Time_Value timeout (void) const;
00100 void timeout (const ACE_Time_Value timeout);
00101
00102
00103 const ACE_USHORT16 *name (void) const;
00104 void name (const ACE_USHORT16 *);
00105
00106
00107 const ACE_USHORT16 *value (void) const;
00108 void value (const ACE_USHORT16 *);
00109
00110
00111 const char *type (void) const;
00112 void type (const char *);
00113
00114
00115 ACE_UINT32 name_len (void) const;
00116 void name_len (ACE_UINT32);
00117
00118
00119 ACE_UINT32 value_len (void) const;
00120 void value_len (ACE_UINT32);
00121
00122
00123 ACE_UINT32 type_len (void) const;
00124 void type_len (ACE_UINT32);
00125
00126
00127 int encode (void *&);
00128
00129
00130 int decode (void);
00131
00132
00133 void dump (void) const;
00134
00135 private:
00136
00137
00138
00139
00140 struct Transfer
00141 {
00142
00143 ACE_UINT32 length_;
00144
00145
00146 ACE_UINT32 msg_type_;
00147
00148
00149
00150 ACE_UINT32 block_forever_;
00151
00152
00153 ACE_UINT32 sec_timeout_;
00154
00155
00156 ACE_UINT32 usec_timeout_;
00157
00158
00159 ACE_UINT32 name_len_;
00160
00161
00162 ACE_UINT32 value_len_;
00163
00164
00165 ACE_UINT32 type_len_;
00166
00167
00168
00169
00170 ACE_USHORT16 data_[MAX_NAME_LENGTH + MAXPATHLEN + MAXPATHLEN + 2];
00171 };
00172
00173
00174 Transfer transfer_;
00175
00176
00177 ACE_USHORT16 *name_;
00178
00179
00180 ACE_USHORT16 *value_;
00181
00182
00183 char *type_;
00184 };
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194 class ACE_Export ACE_Name_Reply
00195 {
00196 public:
00197 enum Constants
00198 {
00199
00200 MAX_NAME_LENGTH = MAXPATHLEN + 1
00201 };
00202
00203
00204 ACE_Name_Reply (void);
00205
00206
00207 ACE_Name_Reply (ACE_UINT32 type, ACE_UINT32 err);
00208
00209
00210
00211 void init (void);
00212
00213
00214 ACE_UINT32 length (void) const;
00215 void length (ACE_UINT32);
00216
00217
00218 ACE_INT32 msg_type (void) const;
00219 void msg_type (ACE_INT32);
00220
00221
00222 ACE_INT32 status (void) const;
00223 void status (ACE_INT32);
00224
00225
00226 ACE_UINT32 errnum (void) const;
00227 void errnum (ACE_UINT32);
00228
00229
00230 int encode (void *&);
00231
00232
00233 int decode (void);
00234
00235
00236 void dump (void) const;
00237
00238 private:
00239
00240
00241 struct Transfer
00242 {
00243
00244 ACE_UINT32 length_;
00245
00246
00247 ACE_INT32 type_;
00248
00249
00250
00251
00252 ACE_UINT32 errno_;
00253 };
00254
00255
00256 Transfer transfer_;
00257 };
00258
00259 #include "ace/post.h"
00260 #endif