Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes

maci::ContainerImpl Class Reference

#include <maciContainerImpl.h>

Collaboration diagram for maci::ContainerImpl:
Collaboration graph
[legend]

List of all members.

Classes

struct  ContainerComponentInfo
 Structure to hold components information. More...

Public Member Functions

maci::Container_ptr getContainerCORBAProxy ()
char * getProcessName ()
 ContainerImpl ()
 Constructor.
virtual ~ContainerImpl ()
 Destructor.
maci::Manager_ptr getManager ()
bool init (int argc, char *argv[])
bool connect ()
bool run ()
bool done ()
int getStatus ()
 Get status of container (main() return value).
void setStatus (int status)
 Set status of container (main() return value).
void etherealizeComponent (const char *id, PortableServer::Servant servant)
 Called by the servant manager - used to etherealize component when references to it dropped to 0.
int getShutdownAction ()
void setShutdownAction (int action)
maci::Handle getHandle ()
PortableServer::POA_var getContainerPOA ()
PortableServer::POAManager_var getPOAManager ()
ContainerServicesgetContainerServices ()
CORBA::ORB_var getContainerORB ()
virtual maci::ComponentInfo * activate_component (maci::Handle h, maci::ExecutionId execution_id, const char *name, const char *exe, const char *type)
virtual void activate_component_async (maci::Handle, maci::ExecutionId, const char *, const char *, const char *, maci::CBComponentInfo *, const ACS::CBDescIn &)
virtual void deactivate_component (maci::Handle h)
virtual CORBA::Object_ptr restart_component (maci::Handle h)
virtual void shutdown (CORBA::ULong action)
virtual maci::ComponentInfoSeq * get_component_info (const maci::HandleSeq &h)
virtual char * name ()
virtual void disconnect ()
virtual maci::AuthenticationData * authenticate (maci::ExecutionId execution_id, const char *question)
virtual void message (CORBA::Short type, const char *message)
virtual void taggedmessage (CORBA::Short type, CORBA::Short tag, const char *message)
virtual void components_available (const maci::ComponentInfoSeq &components)
virtual void components_unavailable (const maci::stringSeq &component_names)
virtual void set_component_shutdown_order (const maci::HandleSeq &h)
virtual CORBA::Object_ptr get_object (const char *name, const char *domain, bool activate)
template<class T >
T * get_object (const char *name, const char *domain, bool activate)
template<class T >
T * getComponent (const char *name, const char *domain, bool activate)
template<class T >
T * getService (const char *name, const char *domain, bool activate)
void releaseComponent (const char *name)
virtual CORBA::Boolean ping ()
virtual
maci::LoggingConfigurable::LogLevels 
get_default_logLevels ()
virtual void set_default_logLevels (const maci::LoggingConfigurable::LogLevels &)
virtual maci::stringSeq * get_logger_names ()
virtual
maci::LoggingConfigurable::LogLevels 
get_logLevels (const char *)
virtual void set_logLevels (const char *, const maci::LoggingConfigurable::LogLevels &)
virtual void refresh_logging_config ()
void loadLoggerConfiguration (const std::string &loggerName)
CORBA::Object_ptr activateCORBAObject (PortableServer::Servant srvnt, const char *name)
 Activates CORBA obejct.
bool deactivateCORBAObject (PortableServer::Servant servant)
 Deactivates servant.
bool deactivateCORBAObject (CORBA::Object_ptr servant)
 Deactivates servant.

Static Public Member Functions

static ContainerImplgetContainer ()
static LoggingProxygetLoggerProxy ()
static void initThread (const char *threadName=0)
 Thread initialization method. Has to be called by each thread to initialize it.
static void doneThread ()
 Thread finalization method. Has to be called by each thread to finalize it.
static void configureLogger (const std::string &loggerName)

Protected Member Functions

Logging::Logger::LoggerSmartPtr getLogger ()

Private Types

typedef ACE_Hash_Map_Manager
< maci::Handle,
ContainerComponentInfo,
ACE_Recursive_Thread_Mutex > 
COMPONENT_HASH_MAP
typedef ACE_Hash_Map_Iterator
< maci::Handle,
ContainerComponentInfo,
ACE_Recursive_Thread_Mutex > 
COMPONENT_HASH_MAP_ITER
typedef ACE_Hash_Map_Entry
< maci::Handle,
ContainerComponentInfo
COMPONENT_HASH_MAP_ENTRY
typedef ACE_Unbounded_Set
< maci::Handle > 
COMPONENT_LIST

Private Member Functions

int parseArgs (int argc, char *argv[])
void showUsage (int argc, char *argv[])
 Show usage.
ContainerServicesinstantiateContainerServices (maci::Handle h, ACE_CString &name, ACE_CString &type, PortableServer::POA_ptr poa)
bool initializeCORBA (int &argc, char *argv[])
 Initializes componentA.
bool doneCORBA ()
 Finalizes CORBA.
int loadDLL (const char *bame)
 Helper method to loadDLL.
maci::Manager_ptr resolveManager (int nSecTimeout)
 Resolve manager.
void logout ()

Private Attributes

const char * m_pid_file_name
 File to output the process id.
const char * m_manager_ref
 Manager cmd-ln reference.
const char * m_container_name
MACIServantManagerm_servant_mgr
 servant manager
cdb::Tablem_database
 Database access.
maci::Container_var m_container_ref
CORBA::ORB_var orb
PortableServer::POAManager_var poaManager
PortableServer::POA_var poaRoot
PortableServer::POA_var poaContainer
PortableServer::POA_var poaPersistent
PortableServer::POA_var poaTransient
maci::Manager_var m_manager
 Reference to the manager.
maci::Handle m_handle
 Handle of the container (given from Mamager at logon).
int m_status
bool m_shutdown
 Is manager shutting down?
COMPONENT_HASH_MAP m_activeComponents
 Data about all active components.
COMPONENT_LIST m_activeComponentList
 Component list (preserves order of activation).
maci::HandleSeq m_componentShutdownOrder
 Component shutdown order (given from the manager).
ACE_CString m_dbPrefix
ACE_CString m_dbRootPrefix
int m_argc
int m_fullargc
char ** m_argv
int m_shutdownAction
 Shutdown action.
bool m_hasIFR
 Is InterfaceRepository present?
bool m_recovery
 Recovery switch.
ACE_SYNCH_MUTEX m_shutdownMutex
 The mutual exclusion mechanism which is required to use the <condition_>.
ACE_SYNCH_CONDITION m_shutdownDone
 Condition used to wait until Container shutdown is finished.
bool m_shutdownDoneSignaled
 Signaling state (to avoid waiting for already signaled signal).
int m_serverThreads
 Number of server threads to handle CORBA ORB requests.
bool m_dynamicContainer
 Dynamic container (i.e. without CDB configuration).
ContainerServicesm_containerServices
 ContainerServices.
maci::ContainerThreadHook m_containerThreadHook
 threads' standard start-up hook
Logging::Logger::LoggerSmartPtr m_logger
 Logger for this container;.
maci::LoggingConfigurable::LogLevels m_defaultLogLevels
std::map< std::string,
maci::LoggingConfigurable::LogLevels > 
m_logLevels
maci::ExecutionId m_executionId
ACS::Time m_startTime
unsigned long cacheSize
unsigned long minCachePriority
unsigned long maxCachePriority
unsigned int flushPeriodSeconds
int maxLogsPerSecond
MethodRequestThreadPoolm_methodRequestThreadPool

Static Private Attributes

static ContainerImplm_container
static LibraryManagerm_dllmgr
 library manager
static LoggingProxym_loggerProxy
 logger
static int m_logLevelRefresh
static int m_logLevelConfigure
static CORBA::ULong m_invocationTimeout
 Invocation timeout in milliseconds (0 - disabled).

Detailed Description

Container is an agent of MACI that is installed on every computer of the control system. There can be more than one Container living on the same computer, but there can be only one Container per process. It has the following responsibilities:

  1. Constructs Controlled Objects (components) when the Manager instructs it to (see activate_component and deactivate_component).
  2. Provides the components that it hosts with basic MACI services, such as:
    • access to the Manager
    • access to the Local Database
    • access to other components (indirectly through the Manager)
    • access to the ORB and POA
  3. Handles intricacies of working with the ORB and the POA, such as connecting the newly created components to the POA.
  4. Maintains code-base of components that can be instantiated on the computer (see get_executables, get_executable_info and put_executable_code.
  5. Is responsive to a shutdown directive from the Manager, which can shutdown only the Container's process, or reboot the computer (see shutdown).

The Container could be easily extended to assist the Manager in fault detection: the Container could respond to periodic pings issued by the Manager, and if the responses stop, the Manager could assume a failure of the Container's computer.

Author:
Matej Sekoranja, Jozef Stefan Institute, Slovenia
Version:
"@(#) $Id: maciContainerImpl.h,v 1.63 2011/10/21 21:14:57 msekoran Exp $"

Member Typedef Documentation

typedef ACE_Hash_Map_Manager<maci::Handle, ContainerComponentInfo, ACE_Recursive_Thread_Mutex> maci::ContainerImpl::COMPONENT_HASH_MAP [private]
typedef ACE_Hash_Map_Entry<maci::Handle, ContainerComponentInfo> maci::ContainerImpl::COMPONENT_HASH_MAP_ENTRY [private]
typedef ACE_Hash_Map_Iterator<maci::Handle, ContainerComponentInfo, ACE_Recursive_Thread_Mutex> maci::ContainerImpl::COMPONENT_HASH_MAP_ITER [private]
typedef ACE_Unbounded_Set<maci::Handle> maci::ContainerImpl::COMPONENT_LIST [private]

Constructor & Destructor Documentation

maci::ContainerImpl::ContainerImpl (  ) 

Constructor.

virtual maci::ContainerImpl::~ContainerImpl (  )  [virtual]

Destructor.


Member Function Documentation

virtual maci::ComponentInfo* maci::ContainerImpl::activate_component ( maci::Handle  h,
maci::ExecutionId  execution_id,
const char *  name,
const char *  exe,
const char *  type 
) [virtual]

Activate a component whose type (class) and name (instance) are given.

In the process of activation, component's code-base is loaded into memory if it is not there already. The code-base resides in an executable file (usually a dynamic-link library or a shared library -- DLL).

On platforms that do not automatically load dependent executables (e.g., VxWorks), the Container identifies the dependancies by querying the executable and loads them automatically.

Once the code is loaded, it is asked to construct a servant of a given type.

The servant is then initialized with the Configuration Database (CDB) and Persistance Database (PDB) data. The servant is attached to the component, and a reference to it is returned.

Parameters:
h Handle of the component that is being activated. This handle is used by the component when it will present itself to the Manager. The component is expected to remember this handle for its entire life-time.
name Name of the component to instantiate.
exe Path to the executable file (a DLL or a shared library) in which the component's code resides. The path is relative to the root directory in which all executable code is stored. The path must not contain dots, and uses slashes (not backslashes) to separate components of the path. The path must not include the extension, or any prefixes, so that it is platform independent.
type The type of the component to instantiate. The interpretation of this field depends on the executable. Type should uniquely identify the code-base which the component will be executing. Note: Type name is NOT CORBA repository id.
Exceptions:
maciErrType::CannotActivateComponentEx 
Returns:
Returns the reference to the object that has just been activated. If the component could not the activated, a nil reference is returned.
virtual void maci::ContainerImpl::activate_component_async ( maci::Handle  ,
maci::ExecutionId  ,
const char *  ,
const char *  ,
const char *  ,
maci::CBComponentInfo *  ,
const ACS::CBDescIn  
) [virtual]
CORBA::Object_ptr maci::ContainerImpl::activateCORBAObject ( PortableServer::Servant  srvnt,
const char *  name 
)

Activates CORBA obejct.

virtual maci::AuthenticationData* maci::ContainerImpl::authenticate ( maci::ExecutionId  execution_id,
const char *  question 
) [virtual]

Authentication method. Method authenticate is the challenge issued to the client after it tries to login. The login will be successful if the client's authenticate() produces the expected result. Only in this case will the Manager's login method return a valid handle, which the client will later use as the id parameter with all calls to the Manager.

Parameters:
The question posed by the Manager.
Returns:
Answer to the question. The first character of the answer identifies the type of the client: A An container (implements the Container interface)
virtual void maci::ContainerImpl::components_available ( const maci::ComponentInfoSeq &  components  )  [virtual]

Notify client about the change (availability) of the components currently in use by this client. For administrative clients, notification is issued for the change of availability of any component in the domain.

Parameters:
components A sequence of ComponentInfo structures identifying the affected components. Regular clients receive the name, the type, the handle and the reference of the newly activated component. Administrative clients also receive the handle of the Container where the component was activated.
virtual void maci::ContainerImpl::components_unavailable ( const maci::stringSeq &  component_names  )  [virtual]

Notify client that some of the components currently in use by client have become unavailable.

Parameters:
component_names CURLs of the unavailable components
static void maci::ContainerImpl::configureLogger ( const std::string &  loggerName  )  [static]
bool maci::ContainerImpl::connect (  ) 
virtual void maci::ContainerImpl::deactivate_component ( maci::Handle  h  )  [virtual]

Deactivate a component whose handle is given.

Deactivation is the inverse process of activation: component is detached from the POA, and thus made unavailable through CORBA, and its resources are freed. If it's code-base is no longer used, it is unloaded from memory.

Parameters:
h A handle identifying a component to be released.
bool maci::ContainerImpl::deactivateCORBAObject ( PortableServer::Servant  servant  ) 

Deactivates servant.

bool maci::ContainerImpl::deactivateCORBAObject ( CORBA::Object_ptr  servant  ) 

Deactivates servant.

virtual void maci::ContainerImpl::disconnect (  )  [virtual]

Disconnect notification. The disconnect method is called by the Manager to notify the client that it will be unavailable and that the client should log off.

bool maci::ContainerImpl::done (  ) 
bool maci::ContainerImpl::doneCORBA (  )  [private]

Finalizes CORBA.

static void maci::ContainerImpl::doneThread (  )  [static]

Thread finalization method. Has to be called by each thread to finalize it.

void maci::ContainerImpl::etherealizeComponent ( const char *  id,
PortableServer::Servant  servant 
)

Called by the servant manager - used to etherealize component when references to it dropped to 0.

virtual maci::ComponentInfoSeq* maci::ContainerImpl::get_component_info ( const maci::HandleSeq &  h  )  [virtual]

Returns information about a subset of components that are currently hosted by the Container.

Note: If the list of handles is empty, information about all components hosted by the container is returned!

Parameters:
Handles of the components whose information should be retrieved.
Returns:
Information about the selected components.
virtual maci::LoggingConfigurable::LogLevels maci::ContainerImpl::get_default_logLevels (  )  [virtual]

Logging configurable methods

virtual maci::stringSeq* maci::ContainerImpl::get_logger_names (  )  [virtual]
virtual maci::LoggingConfigurable::LogLevels maci::ContainerImpl::get_logLevels ( const char *   )  [virtual]
virtual CORBA::Object_ptr maci::ContainerImpl::get_object ( const char *  name,
const char *  domain,
bool  activate 
) [virtual]

Get a component, activating it if necessary. The client must have adequate access rights to access the component. This is untrue of components: NameService, Log, LogFactory, NotifyEventChannelFactory, ArchivingChannel, LoggingChannel, InterfaceRepository, CDB and PDB.

Parameters:
name name of the component (e.g. MOUTN1)
domain domain name, 0 for default domain
activate true to activate component, false to leave it in the current state
Returns:
reference to the component. If the component could not be activated, a CORBA::Object::_nil() reference is returned.
Deprecated:
getContainerService()->getComponent() should be used instead
template<class T >
T* maci::ContainerImpl::get_object ( const char *  name,
const char *  domain,
bool  activate 
) [inline]

get_object template method

Parameters:
name name of the component
doman domain name (could be 0)
activate true to activate component, false to leave it in the current state
Returns:
reference to the component it just redirect call to getComponent, so getComponent should be used instead
Deprecated:
getContainerService()->getComponent<T>() should be used instead
template<class T >
T * maci::ContainerImpl::getComponent ( const char *  name,
const char *  domain,
bool  activate 
)

getComponent template method

Parameters:
name name of the component
doman domain name (could be 0)
activate true to activate component, false to leave it in the current state
Returns:
reference to the component
Deprecated:
getContainerService()->getComponent<T>() should be used instead
Todo:
getComponent should throw an exception in case of error

First creates the CURL and query the Manager for the component

Todo:
throw ex;
Todo:
throw ex;
Todo:
throw ex;
Todo:
throw ex;

References ACS_SHORT_LOG, m_handle, and m_manager.

static ContainerImpl* maci::ContainerImpl::getContainer (  )  [inline, static]

Get container instance Discouraged direct usage of this reference, use CORBA proxy instead: ContainerImpl::getContainer()->getContainerCORBAProxy()

Returns:
container instance
maci::Container_ptr maci::ContainerImpl::getContainerCORBAProxy (  )  [inline]

Get container CORBA proxy instance

Returns:
container CORBA proxy instance
CORBA::ORB_var maci::ContainerImpl::getContainerORB (  )  [inline]

Get container ORB

Returns:
The Container ORB
PortableServer::POA_var maci::ContainerImpl::getContainerPOA (  )  [inline]

Get container POA

Returns:
The Container POA
ContainerServices* maci::ContainerImpl::getContainerServices (  )  [inline]

Get container services

Returns:
the container services
maci::Handle maci::ContainerImpl::getHandle (  )  [inline]

Get container handle

Returns:
The container handle
Logging::Logger::LoggerSmartPtr maci::ContainerImpl::getLogger (  )  [inline, protected]

Returns an ACS Logger created for this container.

Returns:
an ACS Logger
static LoggingProxy* maci::ContainerImpl::getLoggerProxy (  )  [inline, static]

Get logging proxy instance

Returns:
logging proxy instance
maci::Manager_ptr maci::ContainerImpl::getManager (  ) 

Get manager instance

Returns:
manager instance. Returns the reference to this domain's Manager. If the container is not logged in or if the manager could not be found, NULL is returned.

NOTE: The returned pointer is NOT duplicated. This means that you should not assign it to a _var object! The object pointed to is freed during Container's destruction. If you still need the pointer after that, duplicate it.

EXAMPLE:

Attempt an operation on the Manager.

try { getContainer()->getManager()->release_component("mycomponent"); } catch(const CORBA::SystemException&) { }

PortableServer::POAManager_var maci::ContainerImpl::getPOAManager (  )  [inline]

Get POA Manager

Returns:
The POA Manager
char* maci::ContainerImpl::getProcessName (  )  [inline]

Get container's proces name

Returns:
container's proces name
template<class T >
T * maci::ContainerImpl::getService ( const char *  name,
const char *  domain,
bool  activate 
)

getService template method

Parameters:
name name of the service
doman domain name (could be 0)
activate true to activate service, false to leave it in the current state
Returns:
reference to the service
Exceptions:
maciErrType::CannotGetServiceExImpl Could be this method decalred as deprecated since getContainerServices()->getComponent can be used instead ?

Implementation for getService template method

References ACS_SHORT_LOG, ACS_TRACE, m_handle, and m_manager.

int maci::ContainerImpl::getShutdownAction (  )  [inline]

Get shutdown action.

Returns:
0 - reload the container, 1 - reboot the computer, 2 - exit the container
int maci::ContainerImpl::getStatus (  )  [inline]

Get status of container (main() return value).

bool maci::ContainerImpl::init ( int  argc,
char *  argv[] 
)
bool maci::ContainerImpl::initializeCORBA ( int &  argc,
char *  argv[] 
) [private]

Initializes componentA.

static void maci::ContainerImpl::initThread ( const char *  threadName = 0  )  [static]

Thread initialization method. Has to be called by each thread to initialize it.

ContainerServices* maci::ContainerImpl::instantiateContainerServices ( maci::Handle  h,
ACE_CString &  name,
ACE_CString &  type,
PortableServer::POA_ptr  poa 
) [private]

Build a new ContainerServices object (this object implements the abstract class acsContainerServices)

Parameters:
h The handle of the component
name The name of the component
poa The POA
Returns:
The ContainerServices object (the default is the object defined in maciContainerServices.h)
int maci::ContainerImpl::loadDLL ( const char *  bame  )  [private]

Helper method to loadDLL.

void maci::ContainerImpl::loadLoggerConfiguration ( const std::string &  loggerName  ) 
void maci::ContainerImpl::logout (  )  [private]
virtual void maci::ContainerImpl::message ( CORBA::Short  type,
const char *  message 
) [virtual]

The Manager and administrators use this method for sending textual messages to the client.

Parameters:
type Can be either MSG_ERROR or MSG_INFORMATION.
message Contents of the message. The contents are human readable.
virtual char* maci::ContainerImpl::name (  )  [virtual]

Container name

Returns:
name of the container. The caller has to take care for the releaseing of the memory! The memory is allocated with CORBA::string_dup.
int maci::ContainerImpl::parseArgs ( int  argc,
char *  argv[] 
) [private]

Parses command-line argument

Parameters:
argc 
argv 
virtual CORBA::Boolean maci::ContainerImpl::ping (  )  [virtual]

Manager pings its clients (both GUI clients, as well as Containers) repeatedly to verify that they still exist. The return value can be either true, indicating that everything is OK with the client, of false, indicating that client is malfunctioning. If CORBA::TRANSIENT exception is thrown, the Manager should retry the ping several times, and only then shall the client be assumed to be malfunctioning. If another exception is thrown, the client may be immediately assumed to be malfunctioning. Once the client is found to be malfunctioning, the Manager makes an implicit logout of the client.

Returns:
true, indicating that everything is OK with the client, of false, indicating that client is malfunctioning.
virtual void maci::ContainerImpl::refresh_logging_config (  )  [virtual]
void maci::ContainerImpl::releaseComponent ( const char *  name  ) 

Releases the specified component.

Parameters:
The name of the component instance to be released
Returns:
void

maci::Manager_ptr maci::ContainerImpl::resolveManager ( int  nSecTimeout  )  [private]

Resolve manager.

virtual CORBA::Object_ptr maci::ContainerImpl::restart_component ( maci::Handle  h  )  [virtual]

Restarts an component.

Parameters:
h a handle identifying component to be restarted.
Returns:
a new reference of the restarted component.
bool maci::ContainerImpl::run (  ) 
virtual void maci::ContainerImpl::set_component_shutdown_order ( const maci::HandleSeq &  h  )  [virtual]

Notify container about component shutdown order.

Parameters:
h ordered list of components' handles.
virtual void maci::ContainerImpl::set_default_logLevels ( const maci::LoggingConfigurable::LogLevels &   )  [virtual]
virtual void maci::ContainerImpl::set_logLevels ( const char *  ,
const maci::LoggingConfigurable::LogLevels &   
) [virtual]
void maci::ContainerImpl::setShutdownAction ( int  action  )  [inline]

Set shutdown action.

Parameters:
0 - reload the container, 1 - reboot the computer, 2 - exit the container
void maci::ContainerImpl::setStatus ( int  status  )  [inline]

Set status of container (main() return value).

void maci::ContainerImpl::showUsage ( int  argc,
char *  argv[] 
) [private]

Show usage.

virtual void maci::ContainerImpl::shutdown ( CORBA::ULong  action  )  [virtual]

Shutdown the Container.

Parameters:
Action to take after shutting down. Bits 8 thru 15 of this parameter denote the action, which can be one of:

  • 0 -- reload the container
  • 1 -- reboot the computer
  • 2 -- exit the container

The bits 0 thru 7 (values 0 to 255) are the return value that the Container will pass to the operating system.

virtual void maci::ContainerImpl::taggedmessage ( CORBA::Short  type,
CORBA::Short  tag,
const char *  message 
) [virtual]

The Manager and administrators use this method for sending tagged textual messages to the client.

Parameters:
type Can be either MSG_ERROR or MSG_INFORMATION.
tag Additional information tage
message Contents of the message. The contents are human readable.

Member Data Documentation

unsigned long maci::ContainerImpl::cacheSize [private]

Component list (preserves order of activation).

Data about all active components.

char** maci::ContainerImpl::m_argv [private]

Component shutdown order (given from the manager).

maci::Container_var maci::ContainerImpl::m_container_ref [private]

threads' standard start-up hook

Database access.

ACE_CString maci::ContainerImpl::m_dbPrefix [private]
ACE_CString maci::ContainerImpl::m_dbRootPrefix [private]
maci::LoggingConfigurable::LogLevels maci::ContainerImpl::m_defaultLogLevels [private]

library manager

Dynamic container (i.e. without CDB configuration).

maci::ExecutionId maci::ContainerImpl::m_executionId [private]
maci::Handle maci::ContainerImpl::m_handle [private]

Handle of the container (given from Mamager at logon).

Referenced by getComponent(), and getService().

Is InterfaceRepository present?

CORBA::ULong maci::ContainerImpl::m_invocationTimeout [static, private]

Invocation timeout in milliseconds (0 - disabled).

Logger for this container;.

logger

std::map<std::string, maci::LoggingConfigurable::LogLevels> maci::ContainerImpl::m_logLevels [private]
maci::Manager_var maci::ContainerImpl::m_manager [private]

Reference to the manager.

Referenced by getComponent(), and getService().

const char* maci::ContainerImpl::m_manager_ref [private]

Manager cmd-ln reference.

const char* maci::ContainerImpl::m_pid_file_name [private]

File to output the process id.

Recovery switch.

servant manager

Number of server threads to handle CORBA ORB requests.

Is manager shutting down?

Shutdown action.

ACE_SYNCH_CONDITION maci::ContainerImpl::m_shutdownDone [private]

Condition used to wait until Container shutdown is finished.

Signaling state (to avoid waiting for already signaled signal).

ACE_SYNCH_MUTEX maci::ContainerImpl::m_shutdownMutex [private]

The mutual exclusion mechanism which is required to use the <condition_>.

ACS::Time maci::ContainerImpl::m_startTime [private]

Status of the container, later used as the return value from the main() function.

unsigned long maci::ContainerImpl::maxCachePriority [private]
unsigned long maci::ContainerImpl::minCachePriority [private]
CORBA::ORB_var maci::ContainerImpl::orb [private]
PortableServer::POA_var maci::ContainerImpl::poaContainer [private]
PortableServer::POAManager_var maci::ContainerImpl::poaManager [private]
PortableServer::POA_var maci::ContainerImpl::poaPersistent [private]
PortableServer::POA_var maci::ContainerImpl::poaRoot [private]
PortableServer::POA_var maci::ContainerImpl::poaTransient [private]

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