Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ImplRepo_i Class Reference

Implementation Repository. More...

#include <ImplRepo_i.h>

Inheritance diagram for ImplRepo_i

Inheritance graph
[legend]
Collaboration diagram for ImplRepo_i:

Collaboration graph
[legend]
List of all members.

Public Methods

 ImplRepo_i (void)
 ~ImplRepo_i (void)
char* find_ior (const ACE_CString &object_name, CORBA::Environment &ACE_TRY_ENV) throw (CORBA::SystemException, IORTable::NotFound)
 IOR_LookupTable_Callback method. Will return an IOR.

virtual void activate_server ( const char *server, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate )
 Starts up the server <server> if not already running.

virtual void register_server ( const char *server, const ImplementationRepository::StartupOptions &options, CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::AlreadyRegistered )
 Adds the server to the repository and registers the startup information about the server <server>.

virtual void reregister_server ( const char *server, const ImplementationRepository::StartupOptions &options, CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException)
 Updates the startup information about the server <server>.

virtual void remove_server ( const char *server, CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 Removes the server <server> from the repository.

virtual void shutdown_server ( const char *server, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 Attempts to gracefully shut down the server,. More...

virtual char* server_is_running ( const char *server, const char *location, ImplementationRepository::ServerObject_ptr server_object, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 Called by the server to update transient information such as current location of the <server> and its ServerObject.

virtual void server_is_shutting_down ( const char *server, CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 What the server should call before it shuts down.

virtual void find ( const char *server, ImplementationRepository::ServerInformation_out info, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 Returns the startup information for a server.

virtual void list ( CORBA::ULong how_many, ImplementationRepository::ServerInformationList_out server_list, ImplementationRepository::ServerInformationIterator_out server_iterator, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException)
 Used to access the list of servers registered. May also return an iterator which can be used to access more than <how_many> of them.

int init (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ())
 Initialize the Server state - parsing arguments and waiting.

int fini (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ())
 Cleans up any state created by init ().

int run (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ())
 Runs the orb.


Private Methods

ACE_TString activate_server_i ( const char *server, const int check_startup, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate )
 Implementation of activate_server. <check_startup> is a flag to check the activation mode before attempting to start it.

void start_server_i ( const char *server, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate )
 This method starts the server process.

int ready_check (const char *server) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound)
 This method will continuously ping a server and either return when it responds to the ping or return -1 if it times out.

int setup_multicast (ACE_Reactor *reactor)
 Set up multicast handler, if multicast is enabled. More...


Private Attributes

IORTable::Locator_var locator_
 The locator interface for the IORTable.

ACE_Process_Manager process_mgr_
 The Process Manager.

ImR_Forwarderforwarder_impl_
 The class that handles the forwarding.

ImR_Adapter_Activatoractivator_
 Used for the forwarding of any type of POA.

Server_Repository repository_
 Repository containing information about each server.

PortableServer::POA_var root_poa_
 The Root POA for this ORB.

PortableServer::POA_var imr_poa_
 Implementation Repository's POA.

char* server_key_
 Key of the obj ref of the server.

char* server_input_file_
 Copy of the filename for the server output file.

TAO_IOR_Multicast* ior_multicast_
 The ior_multicast event handler.

CORBA::String_var imr_ior_
 Implementation Repository's IOR. Why do we store it here? Multicast doesn't work otherwise.

int argc_
 Number of command line arguments.

char** argv_
 The command line arguments.


Friends

class  ImR_Forwarder

Detailed Description

Implementation Repository.

This provides the interface to Administer the Implementation Repository.


Constructor & Destructor Documentation

ImplRepo_i::ImplRepo_i ( void )
 

ImplRepo_i::~ImplRepo_i ( void )
 


Member Function Documentation

void ImplRepo_i::activate_server ( const char * server,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate ) [virtual]
 

Starts up the server <server> if not already running.

ACE_TString ImplRepo_i::activate_server_i ( const char * server,
const int check_startup,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate ) [private]
 

Implementation of activate_server. <check_startup> is a flag to check the activation mode before attempting to start it.

void ImplRepo_i::find ( const char * server,
ImplementationRepository::ServerInformation_out info,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [virtual]
 

Returns the startup information for a server.

char * ImplRepo_i::find_ior ( const ACE_CString & object_name,
CORBA::Environment & ACE_TRY_ENV ) throw (CORBA::SystemException, IORTable::NotFound)
 

IOR_LookupTable_Callback method. Will return an IOR.

int ImplRepo_i::fini ( CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () )
 

Cleans up any state created by init ().

int ImplRepo_i::init ( CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () )
 

Initialize the Server state - parsing arguments and waiting.

void ImplRepo_i::list ( CORBA::ULong how_many,
ImplementationRepository::ServerInformationList_out server_list,
ImplementationRepository::ServerInformationIterator_out server_iterator,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Used to access the list of servers registered. May also return an iterator which can be used to access more than <how_many> of them.

int ImplRepo_i::ready_check ( const char * server ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [private]
 

This method will continuously ping a server and either return when it responds to the ping or return -1 if it times out.

void ImplRepo_i::register_server ( const char * server,
const ImplementationRepository::StartupOptions & options,
CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::AlreadyRegistered ) [virtual]
 

Adds the server to the repository and registers the startup information about the server <server>.

void ImplRepo_i::remove_server ( const char * server,
CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [virtual]
 

Removes the server <server> from the repository.

void ImplRepo_i::reregister_server ( const char * server,
const ImplementationRepository::StartupOptions & options,
CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Updates the startup information about the server <server>.

int ImplRepo_i::run ( CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () )
 

Runs the orb.

char * ImplRepo_i::server_is_running ( const char * server,
const char * location,
ImplementationRepository::ServerObject_ptr server_object,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [virtual]
 

Called by the server to update transient information such as current location of the <server> and its ServerObject.

void ImplRepo_i::server_is_shutting_down ( const char * server,
CORBA_Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [virtual]
 

What the server should call before it shuts down.

int ImplRepo_i::setup_multicast ( ACE_Reactor * reactor ) [private]
 

Set up multicast handler, if multicast is enabled.

First, figure out if we should set up a multicast handler (based on command line settings) and which port to set it up (based on the environment, command line, or the default IMPLREPOSERVICE port). Then register the handler with the

Parameters:
reactor.  
Return values:
0   ok
-1   failed

void ImplRepo_i::shutdown_server ( const char * server,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, ImplementationRepository::Administration::NotFound) [virtual]
 

Attempts to gracefully shut down the server,.

Attempt to gracefully shut down the server, if that fails, will try to do it ungracefully.

void ImplRepo_i::start_server_i ( const char * server,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw ( CORBA::SystemException, ImplementationRepository::Administration::NotFound, ImplementationRepository::Administration::CannotActivate ) [private]
 

This method starts the server process.


Friends And Related Function Documentation

class ImR_Forwarder [friend]
 


Member Data Documentation

ImR_Adapter_Activator * ImplRepo_i::activator_ [private]
 

Used for the forwarding of any type of POA.

int ImplRepo_i::argc_ [private]
 

Number of command line arguments.

char ** ImplRepo_i::argv_ [private]
 

The command line arguments.

ImR_Forwarder * ImplRepo_i::forwarder_impl_ [private]
 

The class that handles the forwarding.

CORBA::String_var ImplRepo_i::imr_ior_ [private]
 

Implementation Repository's IOR. Why do we store it here? Multicast doesn't work otherwise.

PortableServer::POA_var ImplRepo_i::imr_poa_ [private]
 

Implementation Repository's POA.

TAO_IOR_Multicast * ImplRepo_i::ior_multicast_ [private]
 

The ior_multicast event handler.

IORTable::Locator_var ImplRepo_i::locator_ [private]
 

The locator interface for the IORTable.

ACE_Process_Manager ImplRepo_i::process_mgr_ [private]
 

The Process Manager.

Server_Repository ImplRepo_i::repository_ [private]
 

Repository containing information about each server.

PortableServer::POA_var ImplRepo_i::root_poa_ [private]
 

The Root POA for this ORB.

char * ImplRepo_i::server_input_file_ [private]
 

Copy of the filename for the server output file.

char * ImplRepo_i::server_key_ [private]
 

Key of the obj ref of the server.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 12:16:04 2001 for TAO_Implementation_Repository by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000