26#include <tao/Strategies/advanced_resource.h> 
   27#include <tao/IORTable/IORTable.h> 
   36#ifdef ORB_IS_ORBEXPRESS 
   37#include <RTPortableServer.h> 
   40#include <coil/Timer.h> 
   41#include <coil/Signal.h> 
  374    using TaskId = coil::Timer<coil::PeriodicFunction>::TaskId;
 
  405                   std::chrono::nanoseconds period);
 
  451    void invoke(std::function<
void(
void)> fn,
 
  452                std::chrono::nanoseconds delay
 
  453                = std::chrono::seconds::zero());
 
  490    ReturnCode_t 
load(
const std::string& fname, 
const std::string& initfunc);
 
  947                             bool autoclean = 
true);
 
  953                             bool autoclean = 
true);
 
  959                                  bool autoclean = 
true);
 
  965                            bool autoclean = 
true);
 
  971                                       bool autoclean = 
true);
 
 1073#ifdef ORB_IS_OMNIORB 
 1074    PortableServer::POA_ptr theShortCutPOA();
 
 1113#ifdef ORB_IS_OMNIORB 
 1114    PortableServer::POA_ptr getShortCutPOA();
 
 1585                           coil::Properties& comp_id,
 
 1586                           coil::Properties& comp_conf);
 
 1629                         coil::Properties& ec_conf);
 
 1957                             coil::Properties& prop);
 
 1976                                bool& ip, std::vector<int>& ip_list);
 
 2032#ifdef ORB_IS_OMNIORB 
 2033    PortableServer::POA_var m_pShortCutPOA;
 
 2225        : m_vendor(
""), m_category(
""), m_impleid(imple_id), m_version(
""), m_language(
"")
 
 
 2229        : m_vendor(prop[
"vendor"]),
 
 2230          m_category(prop[
"category"]),
 
 2231          m_impleid(prop[
"implementation_id"]),
 
 2232          m_version(prop[
"version"]),
 
 2233          m_language(prop[
"language"])
 
 
 2237        : m_vendor(factory->profile()[
"vendor"]),
 
 2238          m_category(factory->profile()[
"category"]),
 
 2239          m_impleid(factory->profile()[
"implementation_id"]),
 
 2240          m_version(factory->profile()[
"version"]),
 
 2241          m_language(factory->profile()[
"language"])
 
 
 2248        if (m_impleid.empty()) 
return false;
 
 2250        const coil::Properties& prop(factory->
profile());
 
 2252        if (m_impleid != prop[
"implementation_id"])
 
 2254        if (!m_vendor.empty()   && m_vendor != prop[
"vendor"])
 
 2256        if (!m_category.empty() && m_category != prop[
"category"])
 
 2258        if (!m_version.empty()  && m_version != prop[
"version"])
 
 2260        if (!m_language.empty()  && m_language != prop[
"language"])
 
 
 2267      std::string m_vendor;
 
 2268      std::string m_category;
 
 2269      std::string m_impleid;
 
 2270      std::string m_version;
 
 2271      std::string m_language;
 
 
 2276      coil::Properties& m_prop;
 
 2284        if (m_prop[
"implementation_id"] != prop[
"implementation_id"])
 
 2288        if (!m_prop[
"vendor"].empty() &&
 
 2289            m_prop[
"vendor"] != prop[
"vendor"])     { 
return false; }
 
 2290        if (!m_prop[
"category"].empty() &&
 
 2291            m_prop[
"category"] != prop[
"category"]) { 
return false; }
 
 2292        if (!m_prop[
"version"].empty() &&
 
 2293            m_prop[
"version"] != prop[
"version"])   { 
return false; }
 
 
 
 2325        : 
m_name(factory->name()) {}
 
 
 
 2351    std::vector<ExecutionContextBase*> 
m_ecs;
 
 2358        modlist.emplace_back(f->
profile().getProperty(
"implementation_id"));
 
 
 
 
ExecutionContext Factory class.
 
RT-Component factory class.
 
component action listener class
 
RT component logger class.
 
ECFactoryBase abstract class.
Definition ECFactory.h:116
 
virtual const char * name()=0
Pure virtual function to get names of creation target ExecutionContext.
 
A base class for ExecutionContext.
Definition ExecutionContextBase.h:366
 
FactoryBase base class.
Definition Factory.h:138
 
virtual coil::Properties & profile()
Get the component profile.
 
Logger class.
Definition SystemLogger.h:101
 
Definition Manager.h:2222
 
FactoryPredicate(FactoryBase *factory)
Definition Manager.h:2236
 
FactoryPredicate(const char *imple_id)
Definition Manager.h:2224
 
bool operator()(FactoryBase *factory)
Definition Manager.h:2245
 
FactoryPredicate(const coil::Properties &prop)
Definition Manager.h:2228
 
Definition Manager.h:2275
 
bool operator()(coil::Properties &prop)
Definition Manager.h:2282
 
ModulePredicate(coil::Properties &prop)
Definition Manager.h:2278
 
Manager class.
Definition Manager.h:91
 
std::string formatString(const char *naming_format, coil::Properties &prop)
Construct registration information when registering to Naming server.
 
void setEndpointProperty(CORBA::Object_ptr objref)
Setting endpoint info from corba.endpoints .
 
static void removeTask(TaskId id)
Remove the task from the Manager timer.
Definition Manager.h:426
 
ReturnCode_t load(const std::string &fname, const std::string &initfunc)
[CORBA interface] Load module
 
void cleanupComponent(RTObject_impl *comp)
Unregister RT-Components.
 
static Manager * manager
The pointer to the Manager .
Definition Manager.h:1992
 
bool unregisterComponent(RTObject_impl *comp)
Unregister RT-Components.
 
bool initComposite()
PeriodicECSharedComposite initialization.
 
bool initExecContext()
ExecutionContextManager initialization.
 
bool initORB()
CORBA ORB initialization.
 
coil::Argv m_argv
The argument of ORB_init .
Definition Manager.h:2055
 
void createORBEndpoints(coil::vstring &endpoints)
Create Endpoints.
 
ECFactoryManager m_ecfactory
ExecutionContext Manager .
Definition Manager.h:2342
 
Manager()
Protected Constructor.
 
ModuleInitProc m_initProc
User's initialization function's pointer .
Definition Manager.h:2079
 
void addRtcLifecycleActionListener(RTM::RtcLifecycleActionListener *listener, bool autoclean=true)
 
std::vector< coil::Properties > getLoadableModules()
Get a list of loadable modules.
 
bool registerFactory(coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
Register RT-Component Factory.
 
bool initLocalService()
LocalService initialization.
 
std::vector< coil::Properties > getLoadedModules()
Get a list of loaded modules.
 
Manager(const Manager &)=delete
 
CORBA::ORB_ptr theORB()
Get the pointer to ORB (ownership retained)
 
void shutdownComponents()
NamingManager finalization.
 
coil::Properties m_config
Managaer's configuration Properties .
Definition Manager.h:2088
 
void endpointPropertySwitch(const std::string &ipver, bool &ip, std::vector< int > &ip_list)
Getting option info from corba.endpoint_property .
 
RTM::ManagerServant * m_mgrservant
The pointer to the ManagerServant .
Definition Manager.h:1879
 
CORBA::ORB_var m_pORB
The pointer to the ORB .
Definition Manager.h:2022
 
PortableServer::POAManager_ptr thePOAManager()
Get POAManager that Manager has (ownership retained)
 
NamingManager * m_namingManager
The pointer to the NamingManager .
Definition Manager.h:2106
 
std::vector< std::filebuf * > m_logfiles
Files for log output .
Definition Manager.h:2190
 
bool procContextArgs(const char *ec_args, std::string &ec_id, coil::Properties &ec_conf)
Extracting ExecutionContext's name/properties from the given string.
 
NamingManager * getNaming()
Getting NamingManager.
 
ExecutionContextBase * createContext(const char *ec_args)
Create Context.
 
CORBA::ORB_ptr getORB()
Get the pointer to ORB (ownership duplicated)
 
static Manager & instance()
Get instance of the manager.
 
void deleteComponent(RTObject_impl *comp)
Unregister RT-Components that have been registered to Manager.
 
bool registerComponent(RTObject_impl *comp)
Register RT-Component directly without Factory.
 
void cleanupComponents()
This method deletes RT-Components.
 
std::string createORBOptions()
Create ORB command options.
 
static Manager * init(int argc, char **argv)
Initialize manager.
 
void createORBEndpointOption(std::string &opt, coil::vstring endpoints)
Create a command optional line of Endpoint of ORB.
 
bool initLogger()
System logger initialization.
 
coil::Timer< coil::DelayedFunction > m_invoker
Timer Object for delay call on the Manager thread .
Definition Manager.h:2115
 
static std::mutex mutex
The mutex of the pointer to the Manager .
Definition Manager.h:2001
 
void mainThread()
The main function of Manager main thread. .
 
Finalized m_finalized
Definition Manager.h:2369
 
bool initFactories()
Factories initialization.
 
std::thread m_threadOrb
ORB thread. .
Definition Manager.h:2133
 
int m_argvSize
The argument of ORB_init .
Definition Manager.h:2067
 
FactoryManager m_factory
ComponentManager .
Definition Manager.h:2315
 
void removeNamingActionListener(RTM::NamingActionListener *listener)
 
void connectDataPorts(PortService_ptr port, PortServiceList_var &target_ports)
 
coil::Timer< coil::PeriodicFunction >::TaskId TaskId
Definition Manager.h:374
 
void removeRtcLifecycleActionListener(RTM::RtcLifecycleActionListener *listener)
 
void setModuleInitProc(ModuleInitProc proc)
Set initial procedure.
 
void notifyFinalized(RTObject_impl *comp)
This method deletes RT-Components.
 
PortableServer::POA_var m_pPOA
The pointer to the POA .
Definition Manager.h:2031
 
void addManagerActionListener(RTM::ManagerActionListener *listener, bool autoclean=true)
 
PortableServer::POA_ptr getPOA()
Get a pointer to RootPOA held by Manager.
 
bool mergeProperty(coil::Properties &prop, const char *file_name)
Merge property information.
 
void addLocalServiceActionListener(RTM::LocalServiceActionListener *listener, bool autoclean=true)
 
bool registerECFactory(const char *name, ECNewFunc new_func, ECDeleteFunc delete_func)
Register ExecutionContext Factory.
 
bool activateManager()
Activate the Manager.
 
ComponentManager m_compManager
ComponentManager .
Definition Manager.h:2215
 
RTObject_impl * getComponent(const char *instance_name)
Get RT-Component's pointer.
 
void configureComponent(RTObject_impl *comp, const coil::Properties &prop)
Configure RT-Component.
 
Logger rtclog
Logger stream .
Definition Manager.h:2181
 
PortableServer::POAManager_ptr getPOAManager()
Get POAManager that Manager has (ownership duplicated)
 
void publishPorts(RTObject_impl *comp)
 
NamingManager & getNamingManager()
Getting NamingManager.
 
std::string & getLogLevel()
Get the log level of the configuration.
Definition Manager.h:260
 
void unload(const char *fname)
Unload module.
 
RTM::ManagerServant & getManagerServant()
Getting ManagerServant.
 
void runManager(bool no_block=false)
Run the Manager.
 
PortableServer::POA_ptr thePOA()
Get a pointer to RootPOA held by Manager.
 
void shutdown()
Shutdown Manager.
 
std::list< coil::SignalAction > m_signals
An array for signals management .
Definition Manager.h:2151
 
void initManager(int argc, char **argv)
Manager internal initialization.
 
bool initManagerServant()
ManagerServant initialization.
 
void shutdownORB()
ORB finalization.
 
static std::atomic_flag m_isRunning
A flag to stop the main thread. .
Definition Manager.h:2010
 
std::vector< ExecutionContextBase * > m_ecs
ExecutionContext list .
Definition Manager.h:2351
 
void initLogstreamOthers()
 
std::thread m_threadMain
Manager main thread. .
Definition Manager.h:2142
 
void invoke(std::function< void(void)> fn, std::chrono::nanoseconds delay=std::chrono::seconds::zero())
Run a function on the Manager main thread.
 
void shutdownManagerServant()
Manager Servant finalization.
 
bool m_needsTimer
A flag that Manager use Timer or not. .
Definition Manager.h:2160
 
void unloadAll()
Unload all modules.
 
void connectServicePorts(PortService_ptr port, PortServiceList_var &target_ports)
 
void initLogstreamPlugins()
 
PortServiceList * getPortsOnNameServers(const std::string &nsname, const std::string &kind)
 
std::vector< coil::Properties > getFactoryProfiles()
Get profiles of factories.
 
void removeModuleActionListener(RTM::ModuleActionListener *listener)
 
void shutdownNaming()
NamingManager finalization.
 
std::vector< std::string > getModulesFactories()
Get the list of all Factories.
 
PortableServer::POAManager_var m_pPOAManager
The pointer to the POAManager .
Definition Manager.h:2043
 
LogStreamBuf & getLogStreamBuf()
Get the log buffer.
Definition Manager.h:241
 
std::vector< RTObject_impl * > getComponents()
Get all RT-Components registered in the Manager.
 
bool initNaming()
NamingManager initialization.
 
void deleteComponent(const char *instance_name)
Unregister RT-Components that have been registered to Manager.
 
coil::Properties & getConfig()
Get the manager configuration.
Definition Manager.h:279
 
bool procComponentArgs(const char *comp_arg, coil::Properties &comp_id, coil::Properties &comp_conf)
Extracting component type/properties from the given string.
 
void removeLocalServiceActionListener(RTM::LocalServiceActionListener *listener)
 
void addModuleActionListener(RTM::ModuleActionListener *listener, bool autoclean=true)
 
static void terminate()
Terminate manager.
 
void subscribePorts(RTObject_impl *comp)
 
coil::Timer< coil::PeriodicFunction > m_scheduler
Timer Object for delay call on the Manager thread .
Definition Manager.h:2124
 
LogStreamBuf m_logStreamBuf
Logger buffer .
Definition Manager.h:2172
 
::RTM::ManagerActionListeners m_listeners
Definition Manager.h:2371
 
void removeManagerActionListener(RTM::ManagerActionListener *listener)
 
TaskId addTask(std::function< void(void)> fn, std::chrono::nanoseconds period)
Add a task to the Manager timer.
 
void shutdownLogger()
System Logger finalization.
 
void addNamingActionListener(RTM::NamingActionListener *listener, bool autoclean=true)
 
RTObject_impl * createComponent(const char *comp_args)
Create RT-Components.
 
ModuleManager * m_module
The pointer to the ModuleManager .
Definition Manager.h:2097
 
void join()
Wait for Manager's termination.
 
Manager & operator=(const Manager &)=delete
 
ModuleManager class.
Definition ModuleManager.h:72
 
NamingServer management class.
Definition NamingManager.h:626
 
RT-Component class.
Definition RTObject.h:93
 
LocalServiceActionListener class.
Definition ManagerActionListener.h:716
 
Definition ManagerActionListener.h:62
 
ManagerActionListeners class.
Definition ManagerActionListener.h:967
 
Manager CORBA class.
Definition ManagerServant.h:66
 
ModuleActionListener class.
Definition ManagerActionListener.h:193
 
NamingActionListener class.
Definition ManagerActionListener.h:558
 
RtcLifecycleActionListener class.
Definition ManagerActionListener.h:355
 
ExecutionContextBase *(*)() ECNewFunc
Definition ECFactory.h:29
 
void(*)(RTObject_impl *) RtcDeleteFunc
Definition Factory.h:34
 
void(*)(ExecutionContextBase *) ECDeleteFunc
Definition ECFactory.h:30
 
::coil::LogStreamBuffer LogStreamBuf
Definition SystemLogger.h:34
 
void(*)(Manager *) ModuleInitProc
Definition Manager.h:68
 
RTObject_impl *(*)(Manager *) RtcNewFunc
Definition Factory.h:33
 
RT-Middleware.
Definition FactoryInit.h:22
 
Definition DefaultPeriodicTask.h:24
 
Definition Manager.h:2322
 
ECFactoryPredicate(ECFactoryBase *factory)
Definition Manager.h:2324
 
bool operator()(ECFactoryBase *factory)
Definition Manager.h:2326
 
std::string m_name
Definition Manager.h:2330
 
ECFactoryPredicate(const char *name)
Definition Manager.h:2323
 
Definition Manager.h:2364
 
std::mutex mutex
Definition Manager.h:2366
 
std::vector< RTObject_impl * > comps
Definition Manager.h:2367
 
Definition Manager.h:2197
 
InstanceName(std::string name)
 
InstanceName(const char *name)
 
InstanceName(RTObject_impl *comp)
 
std::string m_name
Definition Manager.h:2202
 
bool operator()(RTObject_impl *comp)
 
Definition Manager.h:2355
 
void operator()(FactoryBase *f)
Definition Manager.h:2356
 
std::vector< std::string > modlist
Definition Manager.h:2360