Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members

# TAO_Naming_Server Class Reference

Defines a wrapper class that holds the root Naming Context. More...

`#include <Naming_Utils.h>`

Collaboration diagram for TAO_Naming_Server:

[legend]
List of all members.

## Public Methods
| TAO_Naming_Server (void)
| Default constructor. More...
| TAO_Naming_Server (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, size_t context_size=ACE_DEFAULT_MAP_SIZE, ACE_Time_Value *timeout=0, int resolve_for_existing_naming_service=1, const ACE_TCHAR *persistence_location=0, void *base_addr=TAO_NAMING_BASE_ADDR, int enable_multicast=1, int use_storable_context=0)
| Constructor. More...
int | init (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, size_t context_size=ACE_DEFAULT_MAP_SIZE, ACE_Time_Value *timeout=0, int resolve_for_existing_naming_service=1, const ACE_TCHAR *persistence_location=0, void *base_addr=TAO_NAMING_BASE_ADDR, int enable_multicast=1, int use_storable_context=0)
| Initializer. More...
int | init_with_orb (int argc, ACE_TCHAR *argv[], CORBA::ORB_ptr orb)
| Initialize the Naming Service with the command line arguments and the ORB. More...
int | fini (void)
| Destroy the child POA created in <init_with_orb>. More...
| ~TAO_Naming_Server (void)
| Destructor. More...
char * | naming_service_ior (void)
| Returns the IOR of the naming service. More...
CosNaming::NamingContext_ptr | operator-> (void) const
| Returns a <NamingContext_ptr> for the root Naming Context. More...
## Protected Methods
int | init_new_naming (CORBA::ORB_ptr orb, PortableServer::POA_ptr root_poa, const ACE_TCHAR *persistence_location, void *base_addr, size_t context_size, int enable_multicast, int use_storable_context)
| Helper method: create Naming Service locally. More...
int | parse_args (int argc, ACE_TCHAR *argv[])
| parses the arguments. More...
## Protected Attributes
CosNaming::NamingContext_var | naming_context_
| Root NamingContext_ptr. More...
TAO_IOR_Multicast * | ior_multicast_
| The ior_multicast event handler. More...
CORBA::String_var | naming_service_ior_
| The IOR string of the root naming context. More...
TAO_Persistent_Context_Index * | context_index_
| Pointer to the object used to create/initialize the Naming Service when local persistent Naming Service is desired. More...
CORBA::ORB_var | orb_
| The ORB. More...
PortableServer::POA_var | root_poa_
| The Root POA. More...
PortableServer::POA_var | ns_poa_
| The Naming Service POA. More...
FILE * | ior_output_file_
| File to output the Naming Service IOR. More...
const ACE_TCHAR * | pid_file_name_
| File to output the process id. More...
size_t | context_size_
| Size of the hash_table allocated upon the creation of the Naming Service context (if one is created). More...
const ACE_TCHAR * | persistence_file_name_
| Path to the file to be used to store/read in Naming Service persistent state. More...
void * | base_address_
| Address to be used for memory mapping Naming Service state file, identified by the <persistence_file_name_>. More...
size_t | time_
| After how long the server should stop listening to requests (in seconds). More...
int | multicast_
| If not zero multicast is enabled. More...
int | use_storable_context_
| If not zero use flat file persistence. More...

## Detailed Description

Defines a wrapper class that holds the root Naming Context.

This class either finds an existing Naming Service (if the <resolve_for_existing_naming_service> flag is set) or creates one (if <resolve_for_existing_naming_service> flag isn't set or Naming Service was not found). This class also defines the operator-> so that <NamingContext> functions like <bind>, <unbind> .. can be called directly on a <TAO_Naming_Server> object, and be forwareded to the root Naming Context. This class is intended to simplify programs that want to play the role of a Naming Service server. To simplify programs that want to play the role of Naming Service clients, use <TAO_Naming_Client>. If a Naming Service is created locally, a TAO_IOR_Multicast event handler is created and installed on the ORB's reactor. This event handler allows other clients on the network to discover and use this Naming Service. Event handler listens on a multicast port for messages from clients looking for a Naming Service, and sends back the ior of the root Naming Context. For more information on how this bootstraping through a multicast process works, check out orbsvcs/orbsvcs/TAO_IOR_Multicast.*, implementation of <resolve_initial_references>, and orbsvcs/Naming/README.

## Constructor & Destructor Documentation

TAO_Naming_Server::TAO_Naming_Server | ( | void |  | ) |

| Default constructor.

TAO_Naming_Server::TAO_Naming_Server | ( | CORBA::ORB_ptr | orb,
|  | PortableServer::POA_ptr | poa,
|  | size_t | context_size = ACE_DEFAULT_MAP_SIZE,
|  | ACE_Time_Value * | timeout = 0,
|  | int | resolve_for_existing_naming_service = 1,
|  | const ACE_TCHAR * | persistence_location = 0,
|  | void * | base_addr = TAO_NAMING_BASE_ADDR,
|  | int | enable_multicast = 1,
|  | int | use_storable_context = 0
| ) |

| Constructor. Attempts to find an existing Naming Service if <resolve_for_existing_naming_service> is set to true. If it is false, or no Naming Service was found during a <timeout> period, create the Naming Service in this process. If creating the Naming Service locally, make the root context of size <context_size>, register it under the <poa>, and make the Naming Service persistent if <persistence_location> is not 0. (<persistence_location> specifies name of the file to use for persistent storage, <base_addr> specifies the address used for memory mapping <persistent_location> file). If <enable_multicast> is not zero then the service will respond to multicast location queries.

TAO_Naming_Server::~TAO_Naming_Server | ( | void |  | ) |

| Destructor.

## Member Function Documentation

int TAO_Naming_Server::fini | ( | void |  | ) |

| Destroy the child POA created in <init_with_orb>.

int TAO_Naming_Server::init | ( | CORBA::ORB_ptr | orb,
|  | PortableServer::POA_ptr | poa,
|  | size_t | context_size = ACE_DEFAULT_MAP_SIZE,
|  | ACE_Time_Value * | timeout = 0,
|  | int | resolve_for_existing_naming_service = 1,
|  | const ACE_TCHAR * | persistence_location = 0,
|  | void * | base_addr = TAO_NAMING_BASE_ADDR,
|  | int | enable_multicast = 1,
|  | int | use_storable_context = 0
| ) |

| Initializer. Attempts to find an existing Naming Service if <resolve_for_existing_naming_service> is set to true. If it is false, or no Naming Service was found during a <timeout> period, create the Naming Service in this process. If creating the Naming Service locally, make the root context of size <context_size>, register it under the <poa>, and make the Naming Service persistent if <persistence_location> is not 0. (<persistence_location> specifies name of the file to use for persistent storage, <base_addr> specifies the address used for memory mapping <persistent_location> file). If <enable_multicast> is not zero then the service will respond to multicast location queries.

int TAO_Naming_Server::init_new_naming | ( | CORBA::ORB_ptr | orb,
|  | PortableServer::POA_ptr | poa,
|  | const ACE_TCHAR * | persistence_location,
|  | void * | base_addr,
|  | size_t | context_size,
|  | int | enable_multicast,
|  | int | use_storable_context
| ) | `[protected]`

| Helper method: create Naming Service locally. Make the root context of size <context_size>, register it under the <root_poa>, and make the Naming Service persistent if <persistence_location> is not 0. (<persistence_location> specifies name of the file to use for persistent storage). If <enable_multicast> is not zero then the service will respond to multicast location queries.

int TAO_Naming_Server::init_with_orb | ( | int | argc,
|  | ACE_TCHAR * | argv[],
|  | CORBA::ORB_ptr | orb
| ) |

| Initialize the Naming Service with the command line arguments and the ORB.

char * TAO_Naming_Server::naming_service_ior | ( | void |  | ) |

| Returns the IOR of the naming service.

CosNaming::NamingContext_ptr TAO_Naming_Server::operator-> | ( | void |  | ) | const

| Returns a <NamingContext_ptr> for the root Naming Context.

int TAO_Naming_Server::parse_args | ( | int | argc,
|  | ACE_TCHAR * | argv[]
| ) | `[protected]`

| parses the arguments.

## Member Data Documentation

void* TAO_Naming_Server::base_address_`[protected]`

| Address to be used for memory mapping Naming Service state file, identified by the <persistence_file_name_>.

TAO_Persistent_Context_Index* TAO_Naming_Server::context_index_`[protected]`

| Pointer to the object used to create/initialize the Naming Service when local persistent Naming Service is desired.

size_t TAO_Naming_Server::context_size_`[protected]`

| Size of the hash_table allocated upon the creation of the Naming Service context (if one is created). Note: all the contexts created under the given context will use the same size for their initial hash table allocations.

TAO_IOR_Multicast* TAO_Naming_Server::ior_multicast_`[protected]`

| The ior_multicast event handler.

FILE* TAO_Naming_Server::ior_output_file_`[protected]`

| File to output the Naming Service IOR.

int TAO_Naming_Server::multicast_`[protected]`

| If not zero multicast is enabled.

CosNaming::NamingContext_var TAO_Naming_Server::naming_context_`[protected]`

| Root NamingContext_ptr.

CORBA::String_var TAO_Naming_Server::naming_service_ior_`[protected]`

| The IOR string of the root naming context.

PortableServer::POA_var TAO_Naming_Server::ns_poa_`[protected]`

| The Naming Service POA.

CORBA::ORB_var TAO_Naming_Server::orb_`[protected]`

| The ORB.

const ACE_TCHAR* TAO_Naming_Server::persistence_file_name_`[protected]`

| Path to the file to be used to store/read in Naming Service persistent state.

const ACE_TCHAR* TAO_Naming_Server::pid_file_name_`[protected]`

| File to output the process id.

PortableServer::POA_var TAO_Naming_Server::root_poa_`[protected]`

| The Root POA.

size_t TAO_Naming_Server::time_`[protected]`

| After how long the server should stop listening to requests (in seconds).

int TAO_Naming_Server::use_storable_context_`[protected]`

| If not zero use flat file persistence.

The documentation for this class was generated from the following files:

- Naming_Utils.h
- Naming_Utils.cpp