#include <Remote_Name_Space.h>
Inheritance diagram for ACE_Remote_Name_Space:


Public Member Functions | |
| ACE_Remote_Name_Space (void) | |
| "Do-nothing" constructor. | |
| ACE_Remote_Name_Space (const ACE_TCHAR *hostname, u_short port) | |
| int | open (const ACE_TCHAR *servername, u_short port) |
| ~ACE_Remote_Name_Space (void) | |
| virtual int | bind (const ACE_NS_WString &name_in, const ACE_NS_WString &value_in, const char *type_in="") |
| Bind a new name to a naming context (Wide character strings). | |
| virtual int | rebind (const ACE_NS_WString &name_in, const ACE_NS_WString &value_in, const char *type_in="") |
| virtual int | unbind (const ACE_NS_WString &name_in) |
| virtual int | resolve (const ACE_NS_WString &name_in, ACE_NS_WString &value_out, char *&type_out) |
| virtual int | list_names (ACE_WSTRING_SET &set_out, const ACE_NS_WString &pattern_in) |
| virtual int | list_values (ACE_WSTRING_SET &set_out, const ACE_NS_WString &pattern_in) |
| virtual int | list_types (ACE_WSTRING_SET &set_out, const ACE_NS_WString &pattern_in) |
| virtual int | list_name_entries (ACE_BINDING_SET &set, const ACE_NS_WString &pattern) |
| virtual int | list_value_entries (ACE_BINDING_SET &set, const ACE_NS_WString &pattern) |
| virtual int | list_type_entries (ACE_BINDING_SET &set, const ACE_NS_WString &pattern) |
| virtual void | dump (void) const |
| Dump the state of the object. | |
Private Attributes | |
| ACE_Name_Proxy | ns_proxy_ |
| Interface to Name server process for NET_LOCAL namespace. | |
Manages a Naming Service for a remote name space which includes bindings for net_local naming context. All strings are stored in wide character format. A Name Binding consists of a name (that's the key), a value string and an optional type string (no wide chars).
Definition at line 47 of file Remote_Name_Space.h.
|
|
"Do-nothing" constructor.
Definition at line 30 of file Remote_Name_Space.cpp. References ACE_TRACE.
00031 {
00032 ACE_TRACE ("ACE_Remote_Name_Space::ACE_Remote_Name_Space");
00033 }
|
|
||||||||||||
|
Specifies the scope of this namespace, opens and memory-maps the associated file (if accessible) or contacts the dedicated name server process for NET_LOCAL namespace. Definition at line 35 of file Remote_Name_Space.cpp. References ACE_ERROR, ACE_LIB_TEXT, ACE_TCHAR, ACE_TRACE, LM_ERROR, and open().
|
|
|
destructor, do some cleanup :TBD: last dtor should "compress" file Definition at line 363 of file Remote_Name_Space.cpp. References ACE_TRACE.
00364 {
00365 ACE_TRACE ("ACE_Remote_Name_Space::~ACE_Remote_Name_Space");
00366 }
|
|
||||||||||||||||
|
Bind a new name to a naming context (Wide character strings).
Implements ACE_Name_Space. Definition at line 44 of file Remote_Name_Space.cpp. References ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_String_Base< CHAR >::length(), ns_proxy_, ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::request_reply(), and ACE_OS::strlen().
00047 {
00048 ACE_TRACE ("ACE_Remote_Name_Space::bind");
00049 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
00050 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ());
00051 ACE_UINT32 name_len =
00052 static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T));
00053 ACE_UINT32 value_len =
00054 static_cast<ACE_UINT32> (value.length () * sizeof (ACE_WCHAR_T));
00055 ACE_UINT32 type_len =
00056 static_cast<ACE_UINT32> (ACE_OS::strlen (type));
00057 ACE_Name_Request request (ACE_Name_Request::BIND,
00058 name_urep.get (),
00059 name_len,
00060 value_urep.get (),
00061 value_len,
00062 type,
00063 type_len);
00064 return this->ns_proxy_.request_reply (request);
00065 }
|
|
|
Dump the state of the object.
Implements ACE_Name_Space. Definition at line 369 of file Remote_Name_Space.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_TRACE, ACE_Name_Proxy::dump(), LM_DEBUG, and ns_proxy_.
|
|
||||||||||||
|
Get a set of names matching a specified pattern (wchars). Matching means the names must begin with the pattern string. Returns the complete binding associated each pattern match. Implements ACE_Name_Space. Definition at line 241 of file Remote_Name_Space.cpp. References ACE_BINDING_SET, ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ACE_Name_Request::name(), ACE_Name_Request::name_len(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), ACE_Name_Request::type(), ACE_Name_Request::value(), and ACE_Name_Request::value_len().
00243 {
00244 ACE_TRACE ("ACE_Remote_Name_Space::list_name_entries");
00245 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00246 ACE_UINT32 pattern_len =
00247 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00248 ACE_Name_Request request (ACE_Name_Request::LIST_NAME_ENTRIES,
00249 pattern_urep.get (),
00250 pattern_len,
00251 0, 0, 0, 0);
00252
00253 if (this->ns_proxy_.send_request (request) == -1)
00254 return -1;
00255
00256 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00257
00258 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00259 {
00260 if (this->ns_proxy_.recv_reply (reply) == -1)
00261 ACE_ERROR_RETURN ((LM_ERROR,
00262 ACE_LIB_TEXT ("%p\n"),
00263 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_names")),
00264 -1);
00265 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00266 {
00267 ACE_NS_WString name (reply.name (),
00268 reply.name_len () / sizeof (ACE_WCHAR_T));
00269 ACE_NS_WString value (reply.value (),
00270 reply.value_len () / sizeof (ACE_WCHAR_T));
00271 ACE_Name_Binding entry (name,
00272 value,
00273 reply.type ());
00274 if (set.insert (entry) == -1)
00275 return -1;
00276 }
00277 }
00278 return 0;
00279 }
|
|
||||||||||||
|
Get a set of names matching a specified pattern (wchars). Matching means the names must begin with the pattern string. Implements ACE_Name_Space. Definition at line 137 of file Remote_Name_Space.cpp. References ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_WSTRING_SET, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ACE_Name_Request::name(), ACE_Name_Request::name_len(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), and ACE_Name_Proxy::send_request().
00139 {
00140 ACE_TRACE ("ACE_Remote_Name_Space::list_names");
00141 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00142 ACE_UINT32 pattern_len =
00143 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00144 ACE_Name_Request request (ACE_Name_Request::LIST_NAMES,
00145 pattern_urep.get (),
00146 pattern_len,
00147 0, 0, 0, 0);
00148 if (this->ns_proxy_.send_request (request) == -1)
00149 return -1;
00150
00151 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00152
00153 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00154 {
00155 if (this->ns_proxy_.recv_reply (reply) == -1)
00156 ACE_ERROR_RETURN ((LM_ERROR,
00157 ACE_LIB_TEXT ("%p\n"),
00158 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_names")),
00159 -1);
00160 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00161 {
00162 ACE_NS_WString name (reply.name (),
00163 reply.name_len () / sizeof (ACE_WCHAR_T));
00164 set.insert (name);
00165 }
00166 }
00167 return 0;
00168 }
|
|
||||||||||||
|
Get a set of types matching a specified pattern (wchars). Matching means the types must begin with the pattern string. Returns the complete binding associated each pattern match. Implements ACE_Name_Space. Definition at line 323 of file Remote_Name_Space.cpp. References ACE_BINDING_SET, ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ACE_Name_Request::name(), ACE_Name_Request::name_len(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), ACE_Name_Request::type(), ACE_Name_Request::value(), and ACE_Name_Request::value_len().
00325 {
00326 ACE_TRACE ("ACE_Remote_Name_Space::list_type_entries");
00327 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00328 ACE_UINT32 pattern_len =
00329 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00330 ACE_Name_Request request (ACE_Name_Request::LIST_TYPE_ENTRIES,
00331 pattern_urep.get (),
00332 pattern_len,
00333 0, 0, 0, 0);
00334
00335 if (this->ns_proxy_.send_request (request) == -1)
00336 return -1;
00337
00338 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00339
00340 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00341 {
00342 if (this->ns_proxy_.recv_reply (reply) == -1)
00343 ACE_ERROR_RETURN ((LM_ERROR,
00344 ACE_LIB_TEXT ("%p\n"),
00345 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
00346 -1);
00347 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00348 {
00349 ACE_NS_WString name (reply.name (),
00350 reply.name_len () / sizeof (ACE_WCHAR_T));
00351 ACE_NS_WString value (reply.value (),
00352 reply.value_len () / sizeof (ACE_WCHAR_T));
00353 ACE_Name_Binding entry (name,
00354 value,
00355 reply.type ());
00356 if (set.insert (entry) == -1)
00357 return -1;
00358 }
00359 }
00360 return 0;
00361 }
|
|
||||||||||||
|
Get a set of types matching a specified pattern (wchars). Matching means the types must begin with the pattern string. Implements ACE_Name_Space. Definition at line 206 of file Remote_Name_Space.cpp. References ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_WSTRING_SET, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), and ACE_Name_Request::type().
00208 {
00209 ACE_TRACE ("ACE_Remote_Name_Space::list_types");
00210 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00211 ACE_UINT32 pattern_len =
00212 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00213 ACE_Name_Request request (ACE_Name_Request::LIST_TYPES,
00214 pattern_urep.get (),
00215 pattern_len,
00216 0, 0, 0, 0);
00217
00218 if (this->ns_proxy_.send_request (request) == -1)
00219 return -1;
00220
00221 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00222
00223 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00224 {
00225 if (this->ns_proxy_.recv_reply (reply) == -1)
00226 ACE_ERROR_RETURN ((LM_ERROR,
00227 ACE_LIB_TEXT ("%p\n"),
00228 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
00229 -1);
00230 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00231 {
00232 ACE_NS_WString type (reply.type ());
00233 set.insert (type);
00234 }
00235 }
00236
00237 return 0;
00238 }
|
|
||||||||||||
|
Get a set of values matching a specified pattern (wchars). Matching means the values must begin with the pattern string. Returns the complete binding associated each pattern match. Implements ACE_Name_Space. Definition at line 282 of file Remote_Name_Space.cpp. References ACE_BINDING_SET, ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ACE_Name_Request::name(), ACE_Name_Request::name_len(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), ACE_Name_Request::type(), ACE_Name_Request::value(), and ACE_Name_Request::value_len().
00284 {
00285 ACE_TRACE ("ACE_Remote_Name_Space::list_value_entries");
00286 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00287 ACE_UINT32 pattern_len =
00288 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00289 ACE_Name_Request request (ACE_Name_Request::LIST_VALUE_ENTRIES,
00290 pattern_urep.get (),
00291 pattern_len,
00292 0, 0, 0, 0);
00293
00294 if (this->ns_proxy_.send_request (request) == -1)
00295 return -1;
00296
00297 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00298
00299 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00300 {
00301 if (this->ns_proxy_.recv_reply (reply) == -1)
00302 ACE_ERROR_RETURN ((LM_ERROR,
00303 ACE_LIB_TEXT ("%p\n"),
00304 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
00305 -1);
00306 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00307 {
00308 ACE_NS_WString name (reply.name (),
00309 reply.name_len () / sizeof (ACE_WCHAR_T));
00310 ACE_NS_WString value (reply.value (),
00311 reply.value_len () / sizeof (ACE_WCHAR_T));
00312 ACE_Name_Binding entry (name,
00313 value,
00314 reply.type());
00315 if (set.insert (entry) == -1)
00316 return -1;
00317 }
00318 }
00319 return 0;
00320 }
|
|
||||||||||||
|
Get a set of values matching a specified pattern (wchars). Matching means the values must begin with the pattern string. Implements ACE_Name_Space. Definition at line 171 of file Remote_Name_Space.cpp. References ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_TRACE, ACE_WCHAR_T, ACE_WSTRING_SET, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_Unbounded_Set< T >::insert(), ACE_String_Base< CHAR >::length(), LM_ERROR, ACE_Name_Request::msg_type(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), ACE_Name_Request::value(), and ACE_Name_Request::value_len().
00173 {
00174 ACE_TRACE ("ACE_Remote_Name_Space::list_values");
00175 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ());
00176 ACE_UINT32 pattern_len =
00177 static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T));
00178 ACE_Name_Request request (ACE_Name_Request::LIST_VALUES,
00179 pattern_urep.get (),
00180 pattern_len,
00181 0, 0, 0, 0);
00182 if (this->ns_proxy_.send_request (request) == -1)
00183 return -1;
00184
00185 ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0);
00186
00187 while (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00188 {
00189 if (this->ns_proxy_.recv_reply (reply) == -1)
00190 ACE_ERROR_RETURN ((LM_ERROR,
00191 ACE_LIB_TEXT ("%p\n"),
00192 ACE_LIB_TEXT ("ACE_Remote_Name_Space::list_values")),
00193 -1);
00194 if (reply.msg_type () != ACE_Name_Request::MAX_ENUM)
00195 {
00196 ACE_NS_WString value (reply.value (),
00197 reply.value_len () / sizeof (ACE_WCHAR_T));
00198 set.insert (value);
00199 }
00200 }
00201
00202 return 0;
00203 }
|
|
||||||||||||
|
Specifies the scope of this namespace, opens and memory-maps the associated file (if accessible) or contacts the dedicated name server process for NET_LOCAL namespace. Definition at line 14 of file Remote_Name_Space.cpp. References ACE_TCHAR, ACE_TRACE, ns_proxy_, ACE_Name_Proxy::open(), and ACE_INET_Addr::set(). Referenced by ACE_Remote_Name_Space().
00015 {
00016 ACE_TRACE ("ACE_Remote_Name_Space::open");
00017 ACE_INET_Addr servaddr;
00018
00019 // Initialize Addr
00020 if (servaddr.set (port, servername) == -1)
00021 return -1;
00022
00023 // Connect to Name Server process.
00024 if (this->ns_proxy_.open (servaddr) == -1)
00025 return -1;
00026
00027 return 0;
00028 }
|
|
||||||||||||||||
|
Overwrite the value or type of an existing name in a ACE_Remote_Name_Space or bind a new name to the context, if it didn't exist yet. (Wide charcter strings interface). Implements ACE_Name_Space. Definition at line 68 of file Remote_Name_Space.cpp. References ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_String_Base< CHAR >::length(), ns_proxy_, ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::request_reply(), and ACE_OS::strlen().
00071 {
00072 ACE_TRACE ("ACE_Remote_Name_Space::rebind");
00073 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
00074 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ());
00075 ACE_UINT32 name_len =
00076 static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T));
00077 ACE_UINT32 value_len =
00078 static_cast<ACE_UINT32> (value.length () * sizeof (ACE_WCHAR_T));
00079 ACE_UINT32 type_len =
00080 static_cast<ACE_UINT32> (ACE_OS::strlen (type));
00081 ACE_Name_Request request (ACE_Name_Request::REBIND,
00082 name_urep.get (),
00083 name_len,
00084 value_urep.get (),
00085 value_len,
00086 type,
00087 type_len);
00088 return this->ns_proxy_.request_reply (request);
00089 }
|
|
||||||||||||||||
|
Get value and type of a given name binding (Wide chars). The caller is responsible for deleting both and ! Implements ACE_Name_Space. Definition at line 92 of file Remote_Name_Space.cpp. References ACE_NEW_RETURN, ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_String_Base< CHAR >::length(), ns_proxy_, ACE_Name_Proxy::recv_reply(), ACE_String_Base< CHAR >::rep(), ACE_Name_Proxy::send_request(), ACE_OS::strcpy(), ACE_Name_Request::type(), ACE_Name_Request::type_len(), ACE_Name_Request::value(), and ACE_Name_Request::value_len().
00095 {
00096 ACE_TRACE ("ACE_Remote_Name_Space::resolve");
00097 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
00098 ACE_UINT32 name_len =
00099 static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T));
00100 ACE_Name_Request request (ACE_Name_Request::RESOLVE,
00101 name_urep.get (),
00102 name_len,
00103 0, 0, 0, 0);
00104
00105 if (this->ns_proxy_.send_request (request) == -1)
00106 return -1;
00107
00108 ACE_Name_Request reply;
00109
00110 if (this->ns_proxy_.recv_reply (reply) == -1)
00111 return -1;
00112
00113 ACE_NS_WString temp (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T));
00114 value = temp;
00115 ACE_NEW_RETURN (type,
00116 char[reply.type_len () + 1],
00117 -1);
00118 ACE_OS::strcpy (type, reply.type ());
00119 return 0;
00120 }
|
|
|
Delete a name from a ACE_Remote_Name_Space (Wide charcter strings Interface). Implements ACE_Name_Space. Definition at line 123 of file Remote_Name_Space.cpp. References ACE_TRACE, ACE_WCHAR_T, ACE_Auto_Basic_Array_Ptr< X >::get(), ACE_String_Base< CHAR >::length(), ns_proxy_, ACE_String_Base< CHAR >::rep(), and ACE_Name_Proxy::request_reply().
00124 {
00125 ACE_TRACE ("ACE_Remote_Name_Space::unbind");
00126 ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ());
00127 ACE_UINT32 name_len =
00128 static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T));
00129 ACE_Name_Request request (ACE_Name_Request::UNBIND,
00130 name_urep.get (),
00131 name_len,
00132 0, 0, 0, 0);
00133 return this->ns_proxy_.request_reply (request);
00134 }
|
|
|
Interface to Name server process for NET_LOCAL namespace.
Definition at line 140 of file Remote_Name_Space.h. Referenced by bind(), dump(), list_name_entries(), list_names(), list_type_entries(), list_types(), list_value_entries(), list_values(), open(), rebind(), resolve(), and unbind(). |
1.3.6