NAME
ACE_Local_Name_Space -
Maintaining accesses Local Name Server Database. Allows to
add NameBindings, change them, remove them and resolve
NameBindings.
SYNOPSIS
#include <ACE/ACE_Local_Name_Space_T.h>
template<class MEM_POOL, class LOCK>
class ACE_Local_Name_Space : public ACE_Name_Space
{
public:
ACE_Local_Name_Space (void);
ACE_Local_Name_Space (
ACE_Naming_Context::Context_Scope_Type scope_in,
ACE_Name_Options *name_options
);
int open (ACE_Naming_Context::Context_Scope_Type scope_in);
~ACE_Local_Name_Space (void);
virtual int bind (
const ACE_WString &name,
const ACE_WString &value,
const char *type = ""
);
virtual int rebind (
const ACE_WString &name,
const ACE_WString &value,
const char *type = ""
);
virtual int unbind (const ACE_WString &name);
virtual int resolve (
const ACE_WString &name,
ACE_WString &value,
char *&type
);
virtual int list_names (
ACE_WSTRING_SET &set,
const ACE_WString &pattern
);
virtual int list_values (
ACE_WSTRING_SET &set,
const ACE_WString &pattern
);
virtual int list_types (
ACE_WSTRING_SET &set,
const ACE_WString &pattern
);
virtual int list_name_entries (
ACE_BINDING_SET &set,
const ACE_WString &pattern
);
virtual int list_value_entries (
ACE_BINDING_SET &set,
const ACE_WString &pattern
);
virtual int list_type_entries (
ACE_BINDING_SET &set,
const ACE_WString &pattern
);
virtual void dump (void) const;
private:
int shared_bind (
const ACE_WString &name,
const ACE_WString &value,
const char *type,
int rebind
);
int create_manager (void);
typedef ACE_Allocator_Adapter <ACE_Malloc <MEM_POOL, LOCK> > ALLOCATOR;
ALLOCATOR *allocator_;
ACE_Name_Space_Map <ALLOCATOR>*name_space_map_;
ACE_Naming_Context::Context_Scope_Type ns_scope_;
ACE_Name_Options *name_options_;
char context_file_[MAXNAMELEN];
LOCK lock_;
};
DESCRIPTION
Manages a Naming Service for a local name space which includes
bindings for node_local and host_local naming contexts.
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).
Initialization and termination methods.
ACE_Local_Name_Space (void);
"Do-nothing" constructor.
ACE_Local_Name_Space (
ACE_Naming_Context::Context_Scope_Type scope_in,
ACE_Name_Options *name_options
);
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 (ACE_Naming_Context::Context_Scope_Type scope_in);
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_Local_Name_Space (void);
destructor, do some cleanup :TBD: last dtor should "compress"
file
virtual int bind (
const ACE_WString &name,
const ACE_WString &value,
const char *type = ""
);
Bind a new name to a naming context (Wide character strings).
virtual int rebind (
const ACE_WString &name,
const ACE_WString &value,
const char *type = ""
);
Overwrite the value or type of an existing name in a
ACE_Local_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);
Delete a name from a ACE_Local_Name_Space (Wide charcter strings
Interface).
virtual int resolve (
const ACE_WString &name,
ACE_WString &value,
char *&type
);
Get value and type of a given name binding (Wide chars). The
caller is responsible for deleting type!
virtual int list_names (
ACE_WSTRING_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.
virtual int list_values (
ACE_WSTRING_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.
virtual int list_types (
ACE_WSTRING_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.
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
I just know this is going to cause problems on some platform...
typedef ACE_Allocator_Adapter <ACE_Malloc <MEM_POOL, LOCK> > ALLOCATOR;
ALLOCATOR *allocator_;
ACE_Name_Space_Map <ALLOCATOR>*name_space_map_;
Pointer to the allocated map manager.
ACE_Naming_Context::Context_Scope_Type ns_scope_;
Scope of this naming context (e.g., PROC_LOCAL, NODE_LOCAL, or NET_LOCAL).
ACE_Name_Options *name_options_;
Keep track of the options such as database name etc
char context_file_[MAXNAMELEN];
Name of the file used as the backing store.
LOCK lock_;
Synchronization variable.
AUTHOR
Prashant Jain (pjain@cs.wustl.edu), Irfan Pyarali
(irfan@wuerl.wustl.edu), and Douglas C. Schmidt
(schmidt@cs.wustl.edu).
LIBRARY
ACE