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.
1.7.0