Maintaining accesses Remote Name Server Database. Allows to add NameBindings, change them, remove them and resolve NameBindings. More...
#include <Remote_Name_Space.h>
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. |
Maintaining accesses Remote Name Server Database. Allows to add NameBindings, change them, remove them and resolve NameBindings.
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.
ACE_Remote_Name_Space::ACE_Remote_Name_Space | ( | void | ) |
"Do-nothing" constructor.
Definition at line 30 of file Remote_Name_Space.cpp.
{ ACE_TRACE ("ACE_Remote_Name_Space::ACE_Remote_Name_Space"); }
ACE_Remote_Name_Space::ACE_Remote_Name_Space | ( | const ACE_TCHAR * | hostname, | |
u_short | port | |||
) |
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.
ACE_Remote_Name_Space::~ACE_Remote_Name_Space | ( | void | ) |
destructor, do some cleanup :TBD: last dtor should "compress" file
Definition at line 363 of file Remote_Name_Space.cpp.
{ ACE_TRACE ("ACE_Remote_Name_Space::~ACE_Remote_Name_Space"); }
int ACE_Remote_Name_Space::bind | ( | const ACE_NS_WString & | name_in, | |
const ACE_NS_WString & | value_in, | |||
const char * | type_in = "" | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::bind"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ()); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ()); ACE_UINT32 name_len = static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T)); ACE_UINT32 value_len = static_cast<ACE_UINT32> (value.length () * sizeof (ACE_WCHAR_T)); ACE_UINT32 type_len = static_cast<ACE_UINT32> (ACE_OS::strlen (type)); ACE_Name_Request request (ACE_Name_Request::BIND, name_urep.get (), name_len, value_urep.get (), value_len, type, type_len); return this->ns_proxy_.request_reply (request); }
void ACE_Remote_Name_Space::dump | ( | void | ) | const [virtual] |
Dump the state of the object.
Implements ACE_Name_Space.
Definition at line 369 of file Remote_Name_Space.cpp.
{ #if defined (ACE_HAS_DUMP) ACE_TRACE ("ACE_Remote_Name_Space::dump"); ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); this->ns_proxy_.dump (); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); #endif /* ACE_HAS_DUMP */ }
int ACE_Remote_Name_Space::list_name_entries | ( | ACE_BINDING_SET & | set, | |
const ACE_NS_WString & | pattern | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_name_entries"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_NAME_ENTRIES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_names")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString name (reply.name (), reply.name_len () / sizeof (ACE_WCHAR_T)); ACE_NS_WString value (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T)); ACE_Name_Binding entry (name, value, reply.type ()); if (set.insert (entry) == -1) return -1; } } return 0; }
int ACE_Remote_Name_Space::list_names | ( | ACE_WSTRING_SET & | set_out, | |
const ACE_NS_WString & | pattern_in | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_names"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_NAMES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_names")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString name (reply.name (), reply.name_len () / sizeof (ACE_WCHAR_T)); set.insert (name); } } return 0; }
int ACE_Remote_Name_Space::list_type_entries | ( | ACE_BINDING_SET & | set, | |
const ACE_NS_WString & | pattern | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_type_entries"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_TYPE_ENTRIES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_values")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString name (reply.name (), reply.name_len () / sizeof (ACE_WCHAR_T)); ACE_NS_WString value (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T)); ACE_Name_Binding entry (name, value, reply.type ()); if (set.insert (entry) == -1) return -1; } } return 0; }
int ACE_Remote_Name_Space::list_types | ( | ACE_WSTRING_SET & | set_out, | |
const ACE_NS_WString & | pattern_in | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_types"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_TYPES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_values")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString type (reply.type ()); set.insert (type); } } return 0; }
int ACE_Remote_Name_Space::list_value_entries | ( | ACE_BINDING_SET & | set, | |
const ACE_NS_WString & | pattern | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_value_entries"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_VALUE_ENTRIES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_values")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString name (reply.name (), reply.name_len () / sizeof (ACE_WCHAR_T)); ACE_NS_WString value (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T)); ACE_Name_Binding entry (name, value, reply.type()); if (set.insert (entry) == -1) return -1; } } return 0; }
int ACE_Remote_Name_Space::list_values | ( | ACE_WSTRING_SET & | set_out, | |
const ACE_NS_WString & | pattern_in | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::list_values"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> pattern_urep (pattern.rep ()); ACE_UINT32 pattern_len = static_cast<ACE_UINT32> (pattern.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::LIST_VALUES, pattern_urep.get (), pattern_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply (0, 0, 0, 0, 0, 0, 0, 0); while (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { if (this->ns_proxy_.recv_reply (reply) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_Remote_Name_Space::list_values")), -1); if (reply.msg_type () != ACE_Name_Request::MAX_ENUM) { ACE_NS_WString value (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T)); set.insert (value); } } return 0; }
int ACE_Remote_Name_Space::open | ( | const ACE_TCHAR * | servername, | |
u_short | port | |||
) |
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.
int ACE_Remote_Name_Space::rebind | ( | const ACE_NS_WString & | name_in, | |
const ACE_NS_WString & | value_in, | |||
const char * | type_in = "" | |||
) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::rebind"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ()); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> value_urep (value.rep ()); ACE_UINT32 name_len = static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T)); ACE_UINT32 value_len = static_cast<ACE_UINT32> (value.length () * sizeof (ACE_WCHAR_T)); ACE_UINT32 type_len = static_cast<ACE_UINT32> (ACE_OS::strlen (type)); ACE_Name_Request request (ACE_Name_Request::REBIND, name_urep.get (), name_len, value_urep.get (), value_len, type, type_len); return this->ns_proxy_.request_reply (request); }
int ACE_Remote_Name_Space::resolve | ( | const ACE_NS_WString & | name_in, | |
ACE_NS_WString & | value_out, | |||
char *& | type_out | |||
) | [virtual] |
Get value and type of a given name binding (Wide chars). The caller is responsible for deleting both <value_out> and <type_out>!
Implements ACE_Name_Space.
Definition at line 92 of file Remote_Name_Space.cpp.
{ ACE_TRACE ("ACE_Remote_Name_Space::resolve"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ()); ACE_UINT32 name_len = static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::RESOLVE, name_urep.get (), name_len, 0, 0, 0, 0); if (this->ns_proxy_.send_request (request) == -1) return -1; ACE_Name_Request reply; if (this->ns_proxy_.recv_reply (reply) == -1) return -1; ACE_NS_WString temp (reply.value (), reply.value_len () / sizeof (ACE_WCHAR_T)); value = temp; ACE_NEW_RETURN (type, char[reply.type_len () + 1], -1); ACE_OS::strcpy (type, reply.type ()); return 0; }
int ACE_Remote_Name_Space::unbind | ( | const ACE_NS_WString & | name_in | ) | [virtual] |
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.
{ ACE_TRACE ("ACE_Remote_Name_Space::unbind"); ACE_Auto_Basic_Array_Ptr<ACE_WCHAR_T> name_urep (name.rep ()); ACE_UINT32 name_len = static_cast<ACE_UINT32> (name.length () * sizeof (ACE_WCHAR_T)); ACE_Name_Request request (ACE_Name_Request::UNBIND, name_urep.get (), name_len, 0, 0, 0, 0); return this->ns_proxy_.request_reply (request); }
Interface to Name server process for NET_LOCAL namespace.
Definition at line 140 of file Remote_Name_Space.h.