1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/* -*- C++ -*- */
// $Id$
// ============================================================================
//
// = LIBRARY
// ACE
//
// = FILENAME
// Remote_Name_Space.h
//
// = AUTHOR
// Prashant Jain
//
// ============================================================================
#ifndef ACE_REMOTE_NAME_SPACE_H
#define ACE_REMOTE_NAME_SPACE_H
#include "ace/pre.h"
#include "ace/ACE.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/SString.h"
#include "ace/Containers.h"
#include "ace/Name_Proxy.h"
#include "ace/Name_Space.h"
typedef ACE_Unbounded_Set<ACE_WString> ACE_WSTRING_SET;
class ACE_Export ACE_Remote_Name_Space : public ACE_Name_Space
{
// = TITLE
// Maintaining accesses Remote Name Server Database. Allows to
// add NameBindings, change them, remove them and resolve
// NameBindings.
//
// = DESCRIPTION
// 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).
public:
// = Initialization and termination methods.
ACE_Remote_Name_Space (void);
// "Do-nothing" constructor.
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.
int 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.
~ACE_Remote_Name_Space (void);
// destructor, do some cleanup :TBD: last dtor should "compress"
// file
virtual int bind (const ACE_WString &name_in,
const ACE_WString &value_in,
const char *type_in = "");
// Bind a new name to a naming context (Wide character strings).
virtual int rebind (const ACE_WString &name_in,
const ACE_WString &value_in,
const char *type_in = "");
// 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).
virtual int unbind (const ACE_WString &name_in);
// Delete a name from a ACE_Remote_Name_Space (Wide charcter strings
// Interface).
virtual int resolve (const ACE_WString &name_in,
ACE_WString &value_out,
char *&type_out);
// Get value and type of a given name binding (Wide chars). The
// caller is responsible for deleting both <value_out> and <type_out>!
virtual int list_names (ACE_WSTRING_SET &set_out,
const ACE_WString &pattern_in);
// Get a set of names matching a specified pattern (wchars). Matching
// means the names must begin with the pattern string.
virtual int list_values (ACE_WSTRING_SET &set_out,
const ACE_WString &pattern_in);
// Get a set of values matching a specified pattern (wchars). Matching
// means the values must begin with the pattern string.
virtual int list_types (ACE_WSTRING_SET &set_out,
const ACE_WString &pattern_in);
// Get a set of types matching a specified pattern (wchars). Matching
// means the types must begin with the pattern string.
virtual int list_name_entries (ACE_BINDING_SET &set,
const ACE_WString &pattern);
// 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.
virtual int list_value_entries (ACE_BINDING_SET &set,
const ACE_WString &pattern);
// 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.
virtual int list_type_entries (ACE_BINDING_SET &set,
const ACE_WString &pattern);
// 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.
virtual void dump (void) const;
// Dump the state of the object.
private:
ACE_Name_Proxy ns_proxy_;
// Interface to Name server process for NET_LOCAL namespace.
};
#include "ace/post.h"
#endif /* ACE_REMOTE_NAME_SPACE_H */
|