OpenRTM-aist  1.2.1
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
RTC::Manager Class Reference

Manager class. More...

#include <Manager.h>

Collaboration diagram for RTC::Manager:
Collaboration graph
[legend]

Classes

struct  ECFactoryPredicate
 
class  FactoryPredicate
 
struct  Finalized
 
struct  InstanceName
 
struct  ModuleFactories
 
class  ModulePredicate
 
class  OrbRunner
 OrbRunner class. More...
 
struct  Term
 
class  Terminator
 Terminator class. More...
 

Public Member Functions

void terminate ()
 Terminate manager. More...
 
void shutdown ()
 Shutdown Manager. More...
 
void join ()
 Wait for Manager's termination. More...
 
LogStreamBufgetLogStreamBuf ()
 Get the log buffer. More...
 
std::string & getLogLevel ()
 Get the log level of the configuration. More...
 
coil::PropertiesgetConfig ()
 Get the manager configuration. More...
 
void setModuleInitProc (ModuleInitProc proc)
 Set initial procedure. More...
 
bool activateManager ()
 Activate the Manager. More...
 
void runManager (bool no_block=false)
 Run the Manager. More...
 
ReturnCode_t load (const std::string &fname, const std::string &initfunc)
 [CORBA interface] Load module More...
 
void unload (const char *fname)
 Unload module. More...
 
void unloadAll ()
 Unload all modules. More...
 
std::vector< coil::PropertiesgetLoadedModules ()
 Get a list of loaded modules. More...
 
std::vector< coil::PropertiesgetLoadableModules ()
 Get a list of loadable modules. More...
 
bool registerFactory (coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
 Register RT-Component Factory. More...
 
std::vector< coil::PropertiesgetFactoryProfiles ()
 Get profiles of factories. More...
 
bool registerECFactory (const char *name, ECNewFunc new_func, ECDeleteFunc delete_func)
 Register ExecutionContext Factory. More...
 
std::vector< std::string > getModulesFactories ()
 Get the list of all Factories. More...
 
RTObject_implcreateComponent (const char *comp_args)
 Create RT-Components. More...
 
ExecutionContextBasecreateContext (const char *ec_args)
 Create Context. More...
 
void cleanupComponent (RTObject_impl *comp)
 Unregister RT-Components. More...
 
void cleanupComponents ()
 This method deletes RT-Components. More...
 
void notifyFinalized (RTObject_impl *comp)
 This method deletes RT-Components. More...
 
bool registerComponent (RTObject_impl *comp)
 Register RT-Component directly without Factory. More...
 
bool unregisterComponent (RTObject_impl *comp)
 Unregister RT-Components. More...
 
void deleteComponent (RTObject_impl *comp)
 Unregister RT-Components that have been registered to Manager. More...
 
void deleteComponent (const char *instance_name)
 Unregister RT-Components that have been registered to Manager. More...
 
RTObject_implgetComponent (const char *instance_name)
 Get RT-Component's pointer. More...
 
std::vector< RTObject_impl * > getComponents ()
 Get all RT-Components registered in the Manager. More...
 
void addManagerActionListener (RTM::ManagerActionListener *listener, bool autoclean=true)
 
void removeManagerActionListener (RTM::ManagerActionListener *listener)
 
void addModuleActionListener (RTM::ModuleActionListener *listener, bool autoclean=true)
 
void removeModuleActionListener (RTM::ModuleActionListener *listener)
 
void addRtcLifecycleActionListener (RTM::RtcLifecycleActionListener *listener, bool autoclean=true)
 
void removeRtcLifecycleActionListener (RTM::RtcLifecycleActionListener *listener)
 
void addNamingActionListener (RTM::NamingActionListener *listener, bool autoclean=true)
 
void removeNamingActionListener (RTM::NamingActionListener *listener)
 
void addLocalServiceActionListener (RTM::LocalServiceActionListener *listener, bool autoclean=true)
 
void removeLocalServiceActionListener (RTM::LocalServiceActionListener *listener)
 
CORBA::ORB_ptr theORB ()
 Get the pointer to ORB (ownership retained) More...
 
CORBA::ORB_ptr getORB ()
 Get the pointer to ORB (ownership duplicated) More...
 
PortableServer::POA_ptr thePOA ()
 Get a pointer to RootPOA held by Manager. More...
 
PortableServer::POA_ptr getPOA ()
 Get a pointer to RootPOA held by Manager. More...
 
PortableServer::POAManager_ptr thePOAManager ()
 Get POAManager that Manager has (ownership retained) More...
 
PortableServer::POAManager_ptr getPOAManager ()
 Get POAManager that Manager has (ownership duplicated) More...
 
RTM::ManagerServantgetManagerServant ()
 Getting ManagerServant. More...
 
bool initLocalService ()
 LocalService initialization. More...
 
NamingManagergetNaming ()
 Getting NamingManager. More...
 

Static Public Member Functions

static Managerinit (int argc, char **argv)
 Initialize manager. More...
 
static Managerinstance ()
 Get instance of the manager. More...
 

Protected Types

typedef ObjectManager< std::string, RTObject_impl, InstanceNameComponentManager
 
typedef ObjectManager< const coil::Properties, FactoryBase, FactoryPredicateFactoryManager
 ComponentFactory. More...
 
typedef ObjectManager< const char *, ECFactoryBase, ECFactoryPredicateECFactoryManager
 

Protected Member Functions

 Manager ()
 Protected Constructor. More...
 
 Manager (const Manager &manager)
 Protected Copy Constructor. More...
 
void initManager (int argc, char **argv)
 Manager internal initialization. More...
 
void shutdownManager ()
 Shutdown Manager. More...
 
void shutdownOnNoRtcs ()
 Shutdown Manager. More...
 
void initLogstreamFile ()
 
void initLogstreamPlugins ()
 
void initLogstreamOthers ()
 
bool initLogger ()
 System logger initialization. More...
 
void shutdownLogger ()
 System Logger finalization. More...
 
bool initORB ()
 CORBA ORB initialization. More...
 
std::string createORBOptions ()
 Create ORB command options. More...
 
void createORBEndpoints (coil::vstring &endpoints)
 Create Endpoints. More...
 
void createORBEndpointOption (std::string &opt, coil::vstring &endpoint)
 Create a command optional line of Endpoint of ORB. More...
 
void shutdownORB ()
 ORB finalization. More...
 
bool initNaming ()
 NamingManager initialization. More...
 
void shutdownNaming ()
 NamingManager finalization. More...
 
NamingManagergetNamingManager ()
 Getting NamingManager. More...
 
void shutdownComponents ()
 NamingManager finalization. More...
 
bool procComponentArgs (const char *comp_arg, coil::Properties &comp_id, coil::Properties &comp_conf)
 Extracting component type/properties from the given string. More...
 
bool procContextArgs (const char *ec_args, std::string &ec_id, coil::Properties &ec_conf)
 Extracting ExecutionContext's name/properties from the given string. More...
 
void configureComponent (RTObject_impl *comp, const coil::Properties &prop)
 Configure RT-Component. More...
 
bool initExecContext ()
 ExecutionContextManager initialization. More...
 
bool initComposite ()
 PeriodicECSharedComposite initialization. More...
 
bool initFactories ()
 Factories initialization. More...
 
void initCpuAffinity ()
 
void initPreConnection ()
 
void initPreActivation ()
 
void initPreCreation ()
 
void invokeInitProc ()
 
void publishPorts (RTObject_impl *comp)
 
void subscribePorts (RTObject_impl *comp)
 
PortServiceList_var getPortsOnNameServers (std::string nsname, std::string kind)
 
void connectDataPorts (PortService_ptr port, PortServiceList_var &target_ports)
 
void connectServicePorts (PortService_ptr port, PortServiceList_var &target_ports)
 
bool initTimer ()
 Timer initialization. More...
 
bool initManagerServant ()
 ManagerServant initialization. More...
 
bool mergeProperty (coil::Properties &prop, const char *file_name)
 Merge property information. More...
 
std::string formatString (const char *naming_format, coil::Properties &prop)
 Construct registration information when registering to Naming server. More...
 
void setEndpointProperty (CORBA::Object_ptr objref)
 Setting endpoint info from corba.endpoints. More...
 
void endpointPropertySwitch (const std::string &ipver, bool &ip, std::vector< int > &ip_list)
 Getting option info from corba.endpoint_property. More...
 

Protected Attributes

RTM::ManagerServantm_mgrservant
 The pointer to the ManagerServant. More...
 
CORBA::ORB_var m_pORB
 The pointer to the ORB. More...
 
PortableServer::POA_var m_pPOA
 The pointer to the POA. More...
 
PortableServer::POAManager_var m_pPOAManager
 The pointer to the POAManager. More...
 
ModuleInitProc m_initProc
 User's initialization function's pointer. More...
 
coil::Properties m_config
 Managaer's configuration Properties. More...
 
ModuleManagerm_module
 The pointer to the ModuleManager. More...
 
NamingManagerm_namingManager
 The pointer to the NamingManager. More...
 
coil::Timerm_timer
 Timer Object. More...
 
LogStreamBuf m_logStreamBuf
 Logger buffer. More...
 
Logger rtclog
 Logger stream. More...
 
std::vector< std::filebuf * > m_logfiles
 Files for log output. More...
 
ComponentManager m_compManager
 ComponentManager. More...
 
FactoryManager m_factory
 ComponentManager. More...
 
ECFactoryManager m_ecfactory
 ExecutionContext Manager. More...
 
std::vector< ExecutionContextBase * > m_ecs
 ExecutionContext list. More...
 
OrbRunnerm_runner
 The pointer to ORB helper class. More...
 
Terminatorm_terminator
 The pointer to ORB termination helper class. More...
 
Term m_terminate
 Synchronous flag for manager termination. More...
 
Finalized m_finalized
 
::RTM::ManagerActionListeners m_listeners
 

Static Protected Attributes

static Managermanager
 The pointer to the Manager. More...
 
static Mutex mutex
 The mutex of the pointer to the Manager. More...
 

Detailed Description

Manager class.

This is a manager class that manages various information such as components.

Since
0.2.0

Member Typedef Documentation

ComponentFactory.

Constructor & Destructor Documentation

RTC::Manager::Manager ( )
protected

Protected Constructor.

Protected Constructor

RTC::Manager::Manager ( const Manager manager)
protected

Protected Copy Constructor.

Protected Copy Constructor

Parameters
managerManager object of copy source

Member Function Documentation

bool RTC::Manager::activateManager ( )

Activate the Manager.

This operation do the following:

  • Activate CORBA POAManager
  • Activate Manager CORBA object
  • Bind object reference of the Manager to the nameserver

This operation should be invoked after Manager:init(), and before runManager().

Returns
Activation result (Successful:true, Failed:false)
void RTC::Manager::addLocalServiceActionListener ( RTM::LocalServiceActionListener listener,
bool  autoclean = true 
)
void RTC::Manager::addManagerActionListener ( RTM::ManagerActionListener listener,
bool  autoclean = true 
)
void RTC::Manager::addModuleActionListener ( RTM::ModuleActionListener listener,
bool  autoclean = true 
)
void RTC::Manager::addNamingActionListener ( RTM::NamingActionListener listener,
bool  autoclean = true 
)
void RTC::Manager::addRtcLifecycleActionListener ( RTM::RtcLifecycleActionListener listener,
bool  autoclean = true 
)
void RTC::Manager::cleanupComponent ( RTObject_impl comp)

Unregister RT-Components.

Unregister specified RT-Component's instances from naming service.

Parameters
compTarget RT-Components for the unregistration
void RTC::Manager::cleanupComponents ( )

This method deletes RT-Components.

This method deletes RT-Components registered by notifyFinalized().

void RTC::Manager::configureComponent ( RTObject_impl comp,
const coil::Properties prop 
)
protected

Configure RT-Component.

Read property files described each RT-Component's type and instance, and configure it to the component. Also, get each component's registered name when registering to NamingService and configure it.

Parameters
compTarget RT-Component for the configuration
void RTC::Manager::connectDataPorts ( PortService_ptr  port,
PortServiceList_var &  target_ports 
)
protected
Parameters
port
target_ports
void RTC::Manager::connectServicePorts ( PortService_ptr  port,
PortServiceList_var &  target_ports 
)
protected
Parameters
port
target_ports
RTObject_impl* RTC::Manager::createComponent ( const char *  comp_args)

Create RT-Components.

Create specified RT-Component's instances via registered Factory. When its instances have been created successfully, the following processings are also executed.

  • Read and set configuration information that was set by external file.
  • Bind ExecutionContext and start operation.
  • Register to naming service.
Parameters
module_nameTarget RT-Component names for the creation
Returns
Created RT-Component's instances
ExecutionContextBase* RTC::Manager::createContext ( const char *  ec_args)

Create Context.

Returns
Created Context's instances
void RTC::Manager::createORBEndpointOption ( std::string &  opt,
coil::vstring endpoint 
)
protected

Create a command optional line of Endpoint of ORB.

Parameters
optORB options
endpointEndpoints list
void RTC::Manager::createORBEndpoints ( coil::vstring endpoints)
protected

Create Endpoints.

Create Endpoints from the configuration.

Parameters
endpointsEndpoints list
std::string RTC::Manager::createORBOptions ( )
protected

Create ORB command options.

Create ORB launch options from configuration information that has been set.

Returns
ORB launch options
void RTC::Manager::deleteComponent ( RTObject_impl comp)

Unregister RT-Components that have been registered to Manager.

Unregister RT-Components that have been registered to manager Remove specified RT-Component from naming service, terminate itself and release its instances.

Parameters
compTarget RT-Component's instances for the unregistration
void RTC::Manager::deleteComponent ( const char *  instance_name)

Unregister RT-Components that have been registered to Manager.

Unregister RT-Components that have been registered to manager Remove specified RT-Component from naming service, terminate itself and release its instances.

Parameters
instance_nameTarget RT-Component's instances for the unregistration
void RTC::Manager::endpointPropertySwitch ( const std::string &  ipver,
bool &  ip,
std::vector< int > &  ip_list 
)
protected

Getting option info from corba.endpoint_property.

std::string RTC::Manager::formatString ( const char *  naming_format,
coil::Properties prop 
)
protected

Construct registration information when registering to Naming server.

Construct information when registering to NameServer based on specified format and property information. Each format specification character means as follows:

  • % : Break of Context
  • n : Instance's name
  • t : Type name
  • m : Type name
  • v : Version
  • V : Vender
  • c : Category
  • h : Host name
  • M : Manager name
  • p : Process ID
Parameters
naming_formatFormat specification for NamingService registration
propProperty information that is used
Returns
Specification format conversion result
RTObject_impl* RTC::Manager::getComponent ( const char *  instance_name)

Get RT-Component's pointer.

Search RT-Component that has been registered to Manager by its specified name, and get it that matches.

Parameters
instance_nameTarget RT-Component's name for searching
Returns
Target RT-Component's instances that matches
std::vector<RTObject_impl*> RTC::Manager::getComponents ( )

Get all RT-Components registered in the Manager.

Get all RT-Component's instances that have been registered to Manager.

Returns
List of all RT-Component's instances
coil::Properties& RTC::Manager::getConfig ( )
inline

Get the manager configuration.

Get the manager configuration that has been set to manager.

Returns
Manager's configuration
std::vector<coil::Properties> RTC::Manager::getFactoryProfiles ( )

Get profiles of factories.

Get profiles of factories.

Returns
profiles of factories
std::vector<coil::Properties> RTC::Manager::getLoadableModules ( )

Get a list of loadable modules.

Get loadable module list. (Currently, unimplemented on ModuleManager side)

Returns
Loadable module list
std::vector<coil::Properties> RTC::Manager::getLoadedModules ( )

Get a list of loaded modules.

Get module list that is currently loaded into manager.

Returns
Module list that has been loaded.
std::string& RTC::Manager::getLogLevel ( )
inline

Get the log level of the configuration.

Get the log level of the configuration.

Returns
Log level of Manager's configuration
LogStreamBuf& RTC::Manager::getLogStreamBuf ( )
inline

Get the log buffer.

Get the log buffer that has been set to manager.

Returns
Log buffer to set to manager
RTM::ManagerServant& RTC::Manager::getManagerServant ( )

Getting ManagerServant.

Returns
ManagerServant
std::vector<std::string> RTC::Manager::getModulesFactories ( )

Get the list of all Factories.

Get the list of all factories that have been registered.

Returns
Registered factory list
NamingManager* RTC::Manager::getNaming ( )

Getting NamingManager.

Returns
NamingManager
NamingManager& RTC::Manager::getNamingManager ( )
protected

Getting NamingManager.

CORBA::ORB_ptr RTC::Manager::getORB ( )

Get the pointer to ORB (ownership duplicated)

Get the pointer to ORB that has been set to Manager. The ownership is copied (the reference count is incremented.), calling side also obtains reference ownership. The obtained reference must be released after use. Usually it is recommended that return value are assigned to _var type variables are wonership would be released automatically.

{ CORBA::ORB_var orb = Manager::instance().getORB(); orb->string_to_object(<IOR string>); } // ORB's reference in orb is released here.

Returns
ORB object

Referenced by CORBA_SeqUtil::refToVstring().

PortableServer::POA_ptr RTC::Manager::getPOA ( )

Get a pointer to RootPOA held by Manager.

Get the pointer to RootPOA that has been set to Manager. The ownership is copied (the reference count is incremented.), calling side also obtains reference ownership. The obtained reference must be released after use. Usually it is recommended that return value are assigned to _var type variables are wonership would be released automatically.

{ PortableServer::POA_var poa = Manager::instance().getPOA();; poa->servant_to_id(m_servant); } // POA's reference in orb is released here.

Returns
RootPOA object
PortableServer::POAManager_ptr RTC::Manager::getPOAManager ( )

Get POAManager that Manager has (ownership duplicated)

Get POAMAnager that has been set to Manager. The ownership is copied (the reference count is incremented.), calling side also obtains reference ownership. The obtained reference must be released after use. Usually it is recommended that return value are assigned to _var type variables are wonership would be released automatically.

{ PortableServer::POAManager_var poam; poam = = Manager::instance().getPOAManager(); poam->activate(); } // POAManager's reference in orb is released here.

Returns
POA manager
PortServiceList_var RTC::Manager::getPortsOnNameServers ( std::string  nsname,
std::string  kind 
)
protected
Parameters
comp
static Manager* RTC::Manager::init ( int  argc,
char **  argv 
)
static

Initialize manager.

This is the static member function to initialize the Manager. The Manager is initialized by given commandline arguments. To use the manager, this initialization member function init() must be called. The manager has two static functions to get the instance such as init() and instance(). Since initializing process is only performed by the init() function, the init() has to be called at the beginning of the lifecycle of the Manager.

*Initialization of manager

  • initManager: Argument processing, reading config file, initialization of subsystem
  • initLogger: Initialization of Logger
  • initORB: Initialization of ORB
  • initNaming: Initialization of NamingService
  • initExecutionContext: Initialization of ExecutionContext factory
  • initTimer: Initialization of Timer
Parameters
argcThe number of command line arguments.
argvThe array of the command line arguments.
Returns
Reference of the unique instance of Manager
bool RTC::Manager::initComposite ( )
protected

PeriodicECSharedComposite initialization.

Returns
PeriodicECSharedComposite initialization result (Successful:true, Failed:false)
void RTC::Manager::initCpuAffinity ( )
protected
bool RTC::Manager::initExecContext ( )
protected

ExecutionContextManager initialization.

Initialize each ExecutionContext that is used, and register each ExecutionContext creation Factory to ExecutionContextManager.

Returns
ExecutionContextManager initialization result (Successful:true, Failed:false)
bool RTC::Manager::initFactories ( )
protected

Factories initialization.

Initialize buffer factories, thread factories, publisher factories, provider factories, and consumer factories.

Returns
PeriodicECSharedComposite initialization result (Successful:true, Failed:false)
bool RTC::Manager::initLocalService ( )

LocalService initialization.

Returns
Timer Initialization result (Successful:true, Failed:false)
bool RTC::Manager::initLogger ( )
protected

System logger initialization.

Initialize System logger. Initialize logger and set it according to the set information in configuration file,

Returns
Initialization result (Successful:true, Failed:false)
void RTC::Manager::initLogstreamFile ( )
protected
void RTC::Manager::initLogstreamOthers ( )
protected
void RTC::Manager::initLogstreamPlugins ( )
protected
void RTC::Manager::initManager ( int  argc,
char **  argv 
)
protected

Manager internal initialization.

Execute Manager's internal initialization processing.

  • Set Manager configuration
  • Set log output file
  • Create termination processing thread
  • Create timer thread (when using timer)
Parameters
argcNumber of commandline arguments
argvCommandline arguments
bool RTC::Manager::initManagerServant ( )
protected

ManagerServant initialization.

Returns
Timer Initialization result (Successful:true, Failed:false)
bool RTC::Manager::initNaming ( )
protected

NamingManager initialization.

Initialize NamingManager . However, operate nothing, if it is set to property that NamingManager is not used. Register default NamingServer that is set to property information, when NamingManager is used. Also, launch a timer that updates information automatically at specified cycle and register the method for the update to the timer, when it is set to update it reguraly.

Returns
Initialization result (Successful:true, Failed:false)
bool RTC::Manager::initORB ( )
protected

CORBA ORB initialization.

Initialize ORB based on the configuration given by arguments.

Returns
ORB initialization result (Successful:true, Failed:false)
void RTC::Manager::initPreActivation ( )
protected
void RTC::Manager::initPreConnection ( )
protected
void RTC::Manager::initPreCreation ( )
protected
bool RTC::Manager::initTimer ( )
protected

Timer initialization.

Initialize each Timer that is used. (In current implementation, nothing is done.)

Returns
Timer Initialization result (Successful:true, Failed:false)
static Manager& RTC::Manager::instance ( )
static

Get instance of the manager.

This is the static member function to get the instance of the Manager. Before calling this function, ensure that the initialization function "init()" is called.

Returns
The only instance reference of the manager

Referenced by CORBA_SeqUtil::refToVstring().

void RTC::Manager::invokeInitProc ( )
protected
void RTC::Manager::join ( )

Wait for Manager's termination.

Wait for Manager's termination to synchronize.

ReturnCode_t RTC::Manager::load ( const std::string &  fname,
const std::string &  initfunc 
)

[CORBA interface] Load module

Load specified module (shared library, DLL etc..), and invoke initialize function.

Parameters
fnameThe module file name
initfuncThe initialize function name
Returns
Return code RTC::RTC_OK Normal return RTC::RTC_ERROR Load failed, or unknown error RTC::PRECONDITION_NOT_MET Not allowed operation by conf RTC::BAD_PARAMETER Invalid parameter
bool RTC::Manager::mergeProperty ( coil::Properties prop,
const char *  file_name 
)
protected

Merge property information.

Load property information that is configured in the specified file, and merge existing properties that has been configured.

Parameters
propTarget properties for the merge
file_nameFile name that property information is described
Returns
Merge result (Successful:true, Failed:false)
void RTC::Manager::notifyFinalized ( RTObject_impl comp)

This method deletes RT-Components.

The deleted RT-Component is registered. The registered RT-Components are deleted by cleanupComponents().

Parameters
DeletedRT component
bool RTC::Manager::procComponentArgs ( const char *  comp_arg,
coil::Properties comp_id,
coil::Properties comp_conf 
)
protected

Extracting component type/properties from the given string.

This operation extracts component type name and its properties from the figen character string. The given string formats is the following.

[RTC type]?[key(0)]=[val(0)]&[key(1)]=[val(1)]...[key(n)]=[val(n)]

Returned value "comp_id" has keys of "vendor", "category", "implementation_id", "version", and returned as Properties type object. "comp_conf" is returned as Properties type object includeing component properties to be given to component.

Returns
comp_arg false will returned if no component type in arg
Parameters
comp_argcharacter string to be processed
comp_typeextracted component type name
comp_propextracted component's properties
bool RTC::Manager::procContextArgs ( const char *  ec_args,
std::string &  ec_id,
coil::Properties ec_conf 
)
protected

Extracting ExecutionContext's name/properties from the given string.

This operation extracts ExecutionContext's name and its properties from the figen character string. The given string formats is the following.

[ExecutionContext's name]?[key(0)]=[val(0)]&[key(1)]=[val(1)]...[key(n)]=[val(n)]

"ec_conf" is returned as Properties type object includeing component properties to be given to component.

Returns
ec_arg false will returned if no ExecutionContext's name in arg
Parameters
ec_argcharacter string to be processed
ec_typeextracted ExecutionContext's name
ec_propextracted ExecutionContext's properties
void RTC::Manager::publishPorts ( RTObject_impl comp)
protected
Parameters
comp
bool RTC::Manager::registerComponent ( RTObject_impl comp)

Register RT-Component directly without Factory.

Register specified RT-Component's instances not via Factory to Manager directly.

Parameters
compTarget RT-Component's instances for the registration
Returns
Registration result (Successful:true, Failed:false)
bool RTC::Manager::registerECFactory ( const char *  name,
ECNewFunc  new_func,
ECDeleteFunc  delete_func 
)

Register ExecutionContext Factory.

Register Factory to create ExecutionContext's instances.

Parameters
nameExecutionContext name for the creation
new_funcExecutionContext creation function
delete_funcExecutionContext destruction function
Returns
Registration result (Successful:true, Failed:false)
bool RTC::Manager::registerFactory ( coil::Properties profile,
RtcNewFunc  new_func,
RtcDeleteFunc  delete_func 
)

Register RT-Component Factory.

Register Factory to create RT-Component's instances.

Parameters
profileRT-Component profile
new_funcRT-Component creation function
delete_funcRT-Component destruction function
Returns
Registration result (Successful:true, Failed:false)
void RTC::Manager::removeLocalServiceActionListener ( RTM::LocalServiceActionListener listener)
void RTC::Manager::removeManagerActionListener ( RTM::ManagerActionListener listener)
void RTC::Manager::removeModuleActionListener ( RTM::ModuleActionListener listener)
void RTC::Manager::removeNamingActionListener ( RTM::NamingActionListener listener)
void RTC::Manager::removeRtcLifecycleActionListener ( RTM::RtcLifecycleActionListener listener)
void RTC::Manager::runManager ( bool  no_block = false)

Run the Manager.

This operation processes the main event loop of the Manager. In this main loop, CORBA's ORB event loop or other processes are performed. As the default behavior, this operation is going to blocking mode and never returns until Manager::destroy() is called. When the given argument "no_block" is set to "true", this operation creates a thread to process the event loop internally, and it doesn't block and returns.

Parameters
no_blockfalse: Blocking mode, true: non-blocking mode.
void RTC::Manager::setEndpointProperty ( CORBA::Object_ptr  objref)
protected

Setting endpoint info from corba.endpoints.

void RTC::Manager::setModuleInitProc ( ModuleInitProc  proc)

Set initial procedure.

This operation sets the initial procedure call to process module initialization, other user defined initialization and so on. The given procedure will be called at the proper timing after the manager initialization, activation and run.

Parameters
procA function pointer to the initial procedure call
void RTC::Manager::shutdown ( )

Shutdown Manager.

Terminate manager's processing. After terminating ORB, shutdown manager in sync.

void RTC::Manager::shutdownComponents ( )
protected

NamingManager finalization.

Get a list of RT-Components that have been registered to NamingManager, and shutdown all components.

void RTC::Manager::shutdownLogger ( )
protected

System Logger finalization.

Finalize System Logger. If log information stored in the buffer exists, output information to the log file forcibly and close it.

void RTC::Manager::shutdownManager ( )
protected

Shutdown Manager.

Shutdown Manager (However, not implemented now)

void RTC::Manager::shutdownNaming ( )
protected

NamingManager finalization.

Finalize NamingManager. Unbind all registered elements and shutdown them.

void RTC::Manager::shutdownOnNoRtcs ( )
protected

Shutdown Manager.

This method shutdowns Manager as follows.

  • "Manager.shutdown_on_nortcs" of configuration is YES.
  • The component is not registered.
void RTC::Manager::shutdownORB ( )
protected

ORB finalization.

Finalize ORB . When the waiting process exists, wait until it completes. In actual finalization, deactivate POA Manager and then shutdown of ORB.

void RTC::Manager::subscribePorts ( RTObject_impl comp)
protected
Parameters
comp
void RTC::Manager::terminate ( )

Terminate manager.

Terminate manager's processing

CORBA::ORB_ptr RTC::Manager::theORB ( )

Get the pointer to ORB (ownership retained)

Get the pointer to ORB that has been set to Manager. The ownership of ORB is retained. If the returned value is assigned to _var variable, getORB() operation must be used. This operation is provided for the following use.

Manager::instance().theORB()->string_to_object(<IOR string>);

Returns
ORB object
PortableServer::POA_ptr RTC::Manager::thePOA ( )

Get a pointer to RootPOA held by Manager.

Get the pointer to RootPOA that has been set to Manager. The ownership of POA is retained. If the returned value is assigned to _var variable, getPOA() operation must be used. This operation is provided for the following use.

Manager::instance().getPOA()->servant_to_id(m_servant);

Returns
RootPOA object
PortableServer::POAManager_ptr RTC::Manager::thePOAManager ( )

Get POAManager that Manager has (ownership retained)

Get POAMAnager that has been set to Manager. The ownership of POAManager is retained. If the returned value is assigned to _var variable, getPOAManager() operation must be used. This operation is provided for the following use.

Manager::instance().thePOAManager()->activate();

Returns
POA manager
void RTC::Manager::unload ( const char *  fname)

Unload module.

Unload module.

Parameters
fnameThe module file name
void RTC::Manager::unloadAll ( )

Unload all modules.

Unload all modules.

bool RTC::Manager::unregisterComponent ( RTObject_impl comp)

Unregister RT-Components.

Unregister specified RT-Components

Parameters
compTarget RT-Component's instances for the unregistration
Returns
Unregistration result (Successful:true, Failed:false)

Member Data Documentation

ComponentManager RTC::Manager::m_compManager
protected

ComponentManager.

coil::Properties RTC::Manager::m_config
protected

Managaer's configuration Properties.

ECFactoryManager RTC::Manager::m_ecfactory
protected

ExecutionContext Manager.

std::vector<ExecutionContextBase*> RTC::Manager::m_ecs
protected

ExecutionContext list.

FactoryManager RTC::Manager::m_factory
protected

ComponentManager.

Finalized RTC::Manager::m_finalized
protected
ModuleInitProc RTC::Manager::m_initProc
protected

User's initialization function's pointer.

::RTM::ManagerActionListeners RTC::Manager::m_listeners
protected
std::vector<std::filebuf*> RTC::Manager::m_logfiles
protected

Files for log output.

LogStreamBuf RTC::Manager::m_logStreamBuf
protected

Logger buffer.

RTM::ManagerServant* RTC::Manager::m_mgrservant
protected

The pointer to the ManagerServant.

ModuleManager* RTC::Manager::m_module
protected

The pointer to the ModuleManager.

NamingManager* RTC::Manager::m_namingManager
protected

The pointer to the NamingManager.

CORBA::ORB_var RTC::Manager::m_pORB
protected

The pointer to the ORB.

PortableServer::POA_var RTC::Manager::m_pPOA
protected

The pointer to the POA.

PortableServer::POAManager_var RTC::Manager::m_pPOAManager
protected

The pointer to the POAManager.

OrbRunner* RTC::Manager::m_runner
protected

The pointer to ORB helper class.

Term RTC::Manager::m_terminate
protected

Synchronous flag for manager termination.

Flag used to take synchronization by join().

Terminator* RTC::Manager::m_terminator
protected

The pointer to ORB termination helper class.

coil::Timer* RTC::Manager::m_timer
protected

Timer Object.

Manager* RTC::Manager::manager
staticprotected

The pointer to the Manager.

Mutex RTC::Manager::mutex
staticprotected

The mutex of the pointer to the Manager.

Logger RTC::Manager::rtclog
protected

Logger stream.


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