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