173 static Manager* init(
int argc,
char** argv);
365 bool activateManager();
397 void runManager(
bool no_block =
false);
424 void load(
const char* fname,
const char* initfunc);
445 void unload(
const char* fname);
481 std::vector<coil::Properties> getLoadedModules();
502 std::vector<coil::Properties> getLoadableModules();
554 std::vector<coil::Properties> getFactoryProfiles();
582 bool registerECFactory(
const char* name,
603 std::vector<std::string> getModulesFactories();
715 void cleanupComponents();
831 void deleteComponent(
const char* instance_name);
876 std::vector<RTObject_impl*> getComponents();
898 CORBA::ORB_ptr getORB();
917 PortableServer::POA_ptr getPOA();
936 PortableServer::POAManager_ptr getPOAManager();
973 void initManager(
int argc,
char** argv);
990 void shutdownManager();
1008 void shutdownOnNoRtcs();
1053 void shutdownLogger();
1096 std::string createORBOptions();
1130 void createORBEndpointOption(std::string& opt,
coil::vstring& endpoint);
1203 void shutdownNaming();
1223 void shutdownComponents();
1273 bool procComponentArgs(
const char* comp_arg,
1316 bool procContextArgs(
const char* ec_args,
1365 bool initExecContext();
1382 bool initComposite();
1405 bool initFactories();
1441 bool initManagerServant();
1527 std::string formatString(
const char* naming_format,
1697 : m_vendor(
""), m_category(
""), m_impleid(imple_id), m_version(
"")
1701 : m_vendor(prop[
"vendor"]),
1702 m_category(prop[
"category"]),
1703 m_impleid(prop[
"implementation_id"]),
1704 m_version(prop[
"version"])
1708 : m_vendor(factory->profile()[
"vendor"]),
1709 m_category(factory->profile()[
"category"]),
1710 m_impleid(factory->profile()[
"implementation_id"]),
1711 m_version(factory->profile()[
"version"])
1717 if (m_impleid.empty())
return false;
1721 if (m_impleid != prop[
"implementation_id"])
1723 if (!m_vendor.empty() && m_vendor != prop[
"vendor"])
1725 if (!m_category.empty() && m_category != prop[
"category"])
1727 if (!m_version.empty() && m_version != prop[
"version"])
1733 std::string m_vendor;
1734 std::string m_category;
1735 std::string m_impleid;
1736 std::string m_version;
1749 if (m_prop[
"implementation_id"] != prop[
"implementation_id"])
1753 if (!m_prop[
"vendor"].empty() &&
1754 m_prop[
"vendor"] != prop[
"vendor"]) {
return false; }
1755 if (!m_prop[
"category"].empty() &&
1756 m_prop[
"category"] != prop[
"category"]) {
return false; }
1757 if (!m_prop[
"version"].empty() &&
1758 m_prop[
"version"] != prop[
"version"]) {
return false; }
1790 : m_name(factory->name()) {};
1793 return m_name == factory->
name();
1817 std::vector<ExecutionContextBase*>
m_ecs;
1950 CORBA::ORB_ptr m_pORB;
2070 Manager::instance().shutdown();
2116 #endif // RTC_MANAGER_H RTObject_impl *(* RtcNewFunc)(Manager *manager)
Definition: rtm/Factory.h:33
static Mutex mutex
The mutex of the pointer to the Manager.
Definition: Manager.h:1555
LogStreamBuf & getLogStreamBuf()
Get the log buffer.
Definition: Manager.h:267
void(* ModuleInitProc)(Manager *manager)
Definition: Manager.h:58
Logger rtclog
Logger stream.
Definition: Manager.h:1654
std::vector< std::string > modlist
Definition: Manager.h:1826
virtual coil::Properties & profile()
Get the component profile.
virtual int open(void *args)
ORB activation processing.
Definition: Manager.h:1894
Term m_terminate
Synchronous flag for manager termination.
Definition: Manager.h:2103
Definition: Manager.h:1786
log_streambuf template class
Definition: Logger.h:54
Manager * m_manager
Definition: Manager.h:2073
FactoryManager m_factory
ComponentManager.
Definition: Manager.h:1780
Mutex class.
Definition: Mutex.h:40
RT component logger class.
void terminate()
Termination processing.
Definition: Manager.h:2019
Definition: Manager.h:1820
RTM::ManagerServant * m_mgrservant
The pointer to the ManagerServant.
Definition: Manager.h:1450
Manager CORBA class.
Definition: ManagerServant.h:63
FactoryPredicate(const char *imple_id)
Definition: Manager.h:1696
A base class for ExecutionContext.
Definition: ExecutionContextBase.h:51
std::string & getLogLevel()
Get the log level of the configuration.
Definition: Manager.h:286
RT-Component class.
Definition: RTObject.h:89
Definition: Manager.h:1669
Manager class.
Definition: Manager.h:80
int waiting
Definition: Manager.h:2087
ECFactoryPredicate(const char *name)
Definition: Manager.h:1788
coil::Timer * m_timer
Timer Object.
Definition: Manager.h:1633
NamingManager * m_namingManager
The pointer to the NamingManager.
Definition: Manager.h:1624
std::string m_name
Definition: Manager.h:1675
OrbRunner(CORBA::ORB_ptr orb)
Constructor.
Definition: Manager.h:1868
virtual int svc(void)
ORB start processing.
Definition: Manager.h:1917
std::vector< std::string > vstring
Definition: stringutil.h:37
coil::Properties & getConfig()
Get the manager configuration.
Definition: Manager.h:305
static Manager * manager
The pointer to the Manager.
Definition: Manager.h:1546
ECFactoryBase abstract class.
Definition: ECFactory.h:115
std::vector< std::filebuf * > m_logfiles
Files for log output.
Definition: Manager.h:1663
const std::string & getProperty(const std::string &key) const
Search for the property with the specified key in this property.
Definition: Manager.h:2085
coil::Properties Properties
Definition: RTC.h:83
std::vector< ExecutionContextBase * > m_ecs
ExecutionContext list.
Definition: Manager.h:1817
std::string m_name
Definition: Manager.h:1795
Definition: Manager.h:2105
LogStreamBuf m_logStreamBuf
Logger buffer.
Definition: Manager.h:1645
Finalized m_finalized
Definition: Manager.h:2110
ObjectManager< const coil::Properties, FactoryBase, FactoryPredicate > FactoryManager
ComponentFactory.
Definition: Manager.h:1771
OrbRunner class.
Definition: Manager.h:1851
coil::Properties m_config
Managaer's configuration Properties.
Definition: Manager.h:1606
CORBA::ORB_var m_pORB
The pointer to the ORB.
Definition: Manager.h:1567
ObjectManager< const char *, ECFactoryBase, ECFactoryPredicate > ECFactoryManager
Definition: Manager.h:1799
Logger class.
Definition: SystemLogger.h:99
FactoryPredicate(const coil::Properties &prop)
Definition: Manager.h:1700
ModuleManager class.
Definition: ModuleManager.h:74
ECFactoryPredicate(ECFactoryBase *factory)
Definition: Manager.h:1789
ModuleManager * m_module
The pointer to the ModuleManager.
Definition: Manager.h:1615
virtual int close(unsigned long flags)
ORB close processing.
Definition: Manager.h:1945
virtual int open(void *args)
Termination processing activation.
Definition: Manager.h:2045
Definition: Manager.h:1739
Terminator * m_terminator
The pointer to ORB termination helper class.
Definition: Manager.h:2083
Timer class.
Definition: Timer.h:53
Class represents a set of properties.
Definition: Properties.h:101
ExecutionContext Factory class.
ExecutionContextBase *(* ECNewFunc)()
Definition: ECFactory.h:29
std::vector< RTObject_impl * > comps
Definition: Manager.h:2108
FactoryBase base class.
Definition: rtm/Factory.h:118
Task class.
Definition: Task.h:39
FactoryPredicate(FactoryBase *factory)
Definition: Manager.h:1707
ObjectManager< std::string, RTObject_impl, InstanceName > ComponentManager
Definition: Manager.h:1678
void(* RtcDeleteFunc)(RTObject_impl *rtc)
Definition: rtm/Factory.h:34
ComponentManager m_compManager
ComponentManager.
Definition: Manager.h:1687
Mutex mutex
Definition: Manager.h:2107
bool operator()(FactoryBase *factory)
Definition: Manager.h:1714
Mutex mutex
Definition: Manager.h:2088
bool operator()(coil::Properties &prop)
Definition: Manager.h:1747
PortableServer::POA_var m_pPOA
The pointer to the POA.
Definition: Manager.h:1576
Guard template class.
Definition: Guard.h:41
Definition: Manager.h:1693
Terminator(Manager *manager)
Constructor.
Definition: Manager.h:2004
virtual const char * name()=0
Pure virtual function to get names of creation target ExecutionContext.
ECFactoryManager m_ecfactory
ExecutionContext Manager.
Definition: Manager.h:1808
NamingServer management class.
Definition: NamingManager.h:353
void(* ECDeleteFunc)(ExecutionContextBase *ec)
Definition: ECFactory.h:30
OrbRunner * m_runner
The pointer to ORB helper class.
Definition: Manager.h:1959
bool operator()(ECFactoryBase *factory)
Definition: Manager.h:1791
RT-Middleware.
Definition: Manager.h:38
ModulePredicate(coil::Properties &prop)
Definition: Manager.h:1743
PortableServer::POAManager_var m_pPOAManager
The pointer to the POAManager.
Definition: Manager.h:1585
Terminator class.
Definition: Manager.h:1983
ModuleInitProc m_initProc
User's initialization function's pointer.
Definition: Manager.h:1597
void operator()(FactoryBase *f)
Definition: Manager.h:1822
virtual int svc(void)
ORB and manager's termination processing.
Definition: Manager.h:2068
RTObject_impl RtcBase
Definition: Manager.h:55
Common Object Interface Layer.
Definition: Allocator.h:27