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