OpenRTM-aist 2.1.0
読み取り中…
検索中…
一致する文字列を見つけられません
Manager.h
[詳解]
1
20#ifndef RTC_MANAGER_H
21#define RTC_MANAGER_H
22
23#include <rtm/RTC.h>
24
25#ifdef ORB_IS_TAO
26#include <tao/Strategies/advanced_resource.h>
27#include <tao/IORTable/IORTable.h>
28#endif
29
30#include <rtm/Factory.h>
31#include <rtm/ECFactory.h>
32#include <rtm/ObjectManager.h>
33#include <rtm/SystemLogger.h>
35
36#ifdef ORB_IS_ORBEXPRESS
37#include <RTPortableServer.h>
38#endif
39
40#include <coil/Timer.h>
41#include <coil/Signal.h>
42
43#include <atomic>
44#include <functional>
45#include <mutex>
46#include <list>
47#include <thread>
48#include <vector>
49
50namespace RTM
51{
52 class ManagerServant;
53} // namespace RTM
54
55namespace coil
56{
57} // namespace coil
58
59namespace RTC
60{
61 class CorbaNaming;
62 class ModuleManager;
63 class NamingManager;
64 class Manager;
65 class RTObject_impl;
67
68 using ModuleInitProc = void (*)(Manager*);
69
90 class Manager
91 {
92 protected:
107
108 Manager(const Manager&) = delete;
109 Manager& operator=(const Manager&) = delete;
110
111 public:
164 static Manager* init(int argc, char** argv);
165
188 static Manager& instance();
189
190 //============================================================
191 // Manager
192 //============================================================
193
207 static void terminate();
208
222 void join();
223
242
260 std::string& getLogLevel() {return m_config["logger.log_level"];}
261
279 coil::Properties& getConfig() { return m_config;}
280
306
340
372 void runManager(bool no_block = false);
373
374 using TaskId = coil::Timer<coil::PeriodicFunction>::TaskId;
375
404 TaskId addTask(std::function<void(void)> fn,
405 std::chrono::nanoseconds period);
406
426 static void removeTask(TaskId id) { id->stop(); }
427
451 void invoke(std::function<void(void)> fn,
452 std::chrono::nanoseconds delay
453 = std::chrono::seconds::zero());
454
455 //============================================================
456 // Module management
457 //============================================================
490 ReturnCode_t load(const std::string& fname, const std::string& initfunc);
491
528 ReturnCode_t load(coil::Properties &prop, const std::string& initfunc);
529
549 void unload(const char* fname);
550
566 void unloadAll();
567
585 std::vector<coil::Properties> getLoadedModules();
586
606 std::vector<coil::Properties> getLoadableModules();
607
608 //============================================================
609 // Component Factory Management
610 //============================================================
637 bool registerFactory(coil::Properties& profile,
638 RtcNewFunc new_func,
639 RtcDeleteFunc delete_func);
640
658 std::vector<coil::Properties> getFactoryProfiles();
659
686 bool registerECFactory(const char* name,
687 ECNewFunc new_func,
688 ECDeleteFunc delete_func);
689
707 std::vector<std::string> getModulesFactories();
708
709 //============================================================
710 // Component management
711 //============================================================
770 RTObject_impl* createComponent(const char* comp_args);
784 ExecutionContextBase* createContext(const char* ec_args);
785
805
820
840
865
888
889
912
935 void deleteComponent(const char* instance_name);
936
937
961 RTObject_impl* getComponent(const char* instance_name);
962
980 std::vector<RTObject_impl*> getComponents();
981
982
983 void
985 bool autoclean = true);
986 void
988
989 void
991 bool autoclean = true);
992 void
994
995 void
997 bool autoclean = true);
998 void
1000
1001 void
1003 bool autoclean = true);
1004 void
1006
1007 void
1009 bool autoclean = true);
1010 void
1012
1013
1014 //============================================================
1015 // CORBA 関連
1016 //============================================================
1043 CORBA::ORB_ptr theORB();
1044
1081 CORBA::ORB_ptr getORB();
1082
1110 PortableServer::POA_ptr thePOA();
1111#ifdef ORB_IS_OMNIORB
1112 PortableServer::POA_ptr theShortCutPOA();
1113#endif
1150 PortableServer::POA_ptr getPOA();
1151#ifdef ORB_IS_OMNIORB
1152 PortableServer::POA_ptr getShortCutPOA();
1153#endif
1154
1182 PortableServer::POAManager_ptr thePOAManager();
1222 PortableServer::POAManager_ptr getPOAManager();
1223
1235
1265
1266 //============================================================
1267 // Protected functions
1268 //============================================================
1269 protected:
1270 //============================================================
1271 // Manager initialize and finalization
1272 //============================================================
1300 void initManager(int argc, char** argv);
1301
1317 void shutdown();
1318
1326 // TAO will cause the build to fail, so don't use name "main".
1328
1329 //============================================================
1330 // Logger initialize and terminator
1331 //============================================================
1357
1376
1391
1392 //============================================================
1393 // ORB initialization and finalization
1394 //============================================================
1412 bool initORB();
1413
1433 std::string createORBOptions();
1434
1454 static bool isORBEndPoint(const std::string& endpoint);
1455
1473 void createORBEndpoints(coil::vstring& endpoints);
1474
1488 void createORBEndpointOption(std::string& opt, coil::vstring endpoints);
1489
1509
1510 //============================================================
1511 // NamingService initialization and finalization
1512 //============================================================
1545
1562
1574
1575 //============================================================
1576 // Component management
1577 //============================================================
1594
1595
1643 bool procComponentArgs(const char* comp_arg,
1644 coil::Properties& comp_id,
1645 coil::Properties& comp_conf);
1686 bool procContextArgs(const char* ec_args,
1687 std::string& ec_id,
1688 coil::Properties& ec_conf);
1689
1712 void configureComponent(RTObject_impl* comp, const coil::Properties& prop);
1713
1736
1753
1776
1880 PortServiceList* getPortsOnNameServers(const std::string& nsname, const std::string& kind);
1896 void connectDataPorts(PortService_ptr port, PortServiceList_var& target_ports);
1912 void connectServicePorts(PortService_ptr port, PortServiceList_var& target_ports);
1913
1928
1929
1930
1939
1965 bool mergeProperty(coil::Properties& prop, const char* file_name);
1966
2015 std::string formatString(const char* naming_format,
2016 coil::Properties& prop);
2017
2025 void setEndpointProperty(CORBA::Object_ptr objref);
2026
2034 void endpointPropertySwitch(const std::string& ipver,
2035 bool& ip, std::vector<int>& ip_list);
2036
2037 //============================================================
2038 // protected 変数
2039 //============================================================
2040
2041 //------------------------------------------------------------
2042 // static var
2043 //------------------------------------------------------------
2052
2060 static std::mutex mutex;
2061
2069 static std::atomic_flag m_isRunning;
2070
2071 //------------------------------------------------------------
2072 // CORBA var
2073 //------------------------------------------------------------
2081 CORBA::ORB_var m_pORB;
2082
2090 PortableServer::POA_var m_pPOA;
2091#ifdef ORB_IS_OMNIORB
2092 PortableServer::POA_var m_pShortCutPOA;
2093#endif
2094
2102 PortableServer::POAManager_var m_pPOAManager;
2103
2114 coil::Argv m_argv;
2115
2127
2128 //------------------------------------------------------------
2129 // Manager's variable
2130 //------------------------------------------------------------
2139
2147 coil::Properties m_config;
2148
2157
2166
2174 coil::Timer<coil::DelayedFunction> m_invoker;
2175
2183 coil::Timer<coil::PeriodicFunction> m_scheduler;
2184
2192 std::thread m_threadOrb;
2193
2201 std::thread m_threadMain;
2202
2210 std::list<coil::SignalAction> m_signals;
2211
2219 bool m_needsTimer{false};
2220
2221 //------------------------------------------------------------
2222 // Logger
2223 //------------------------------------------------------------
2232
2241
2249 std::vector<std::filebuf*> m_logfiles;
2250
2251 //============================================================
2252 // コンポーネントマネージャ
2253 //============================================================
2254 // ObjectManager へ渡す述語クラス
2256 {
2258 explicit InstanceName(const char* name);
2259 explicit InstanceName(std::string name);
2261 std::string m_name;
2262 };
2263
2265 InstanceName>;
2266
2275
2276 //============================================================
2277 // コンポーネントファクトリ
2278 //============================================================
2279 // コンポーネントファクトリへ渡す述語クラス
2281 {
2282 public:
2283 explicit FactoryPredicate(const char* imple_id)
2284 : m_vendor(""), m_category(""), m_impleid(imple_id), m_version(""), m_language("")
2285 {
2286 }
2287 explicit FactoryPredicate(const coil::Properties& prop)
2288 : m_vendor(prop["vendor"]),
2289 m_category(prop["category"]),
2290 m_impleid(prop["implementation_id"]),
2291 m_version(prop["version"]),
2292 m_language(prop["language"])
2293 {
2294 }
2296 : m_vendor(factory->profile()["vendor"]),
2297 m_category(factory->profile()["category"]),
2298 m_impleid(factory->profile()["implementation_id"]),
2299 m_version(factory->profile()["version"]),
2300 m_language(factory->profile()["language"])
2301 {
2302 }
2305 {
2306 // implementation_id must not be empty
2307 if (m_impleid.empty()) return false;
2308
2309 const coil::Properties& prop(factory->profile());
2310
2311 if (m_impleid != prop["implementation_id"])
2312 return false;
2313 if (!m_vendor.empty() && m_vendor != prop["vendor"])
2314 return false;
2315 if (!m_category.empty() && m_category != prop["category"])
2316 return false;
2317 if (!m_version.empty() && m_version != prop["version"])
2318 return false;
2319 if (!m_language.empty() && m_language != prop["language"])
2320 return false;
2321
2322
2323 return true;
2324 }
2325 private:
2326 std::string m_vendor;
2327 std::string m_category;
2328 std::string m_impleid;
2329 std::string m_version;
2330 std::string m_language;
2331 };
2332
2334 {
2335 coil::Properties& m_prop;
2336 public:
2337 explicit ModulePredicate(coil::Properties& prop)
2338 : m_prop(prop)
2339 {
2340 }
2341 bool operator()(coil::Properties& prop)
2342 {
2343 if (m_prop["implementation_id"] != prop["implementation_id"])
2344 {
2345 return false;
2346 }
2347 if (!m_prop["vendor"].empty() &&
2348 m_prop["vendor"] != prop["vendor"]) { return false; }
2349 if (!m_prop["category"].empty() &&
2350 m_prop["category"] != prop["category"]) { return false; }
2351 if (!m_prop["version"].empty() &&
2352 m_prop["version"] != prop["version"]) { return false; }
2353 return true;
2354 }
2355 };
2356
2364 using FactoryManager = ObjectManager<const coil::Properties,
2366
2375
2376 //============================================================
2377 // ExecutionContextファクトリ
2378 //============================================================
2379 // ECファクトリへ渡す述語クラス
2381 {
2382 explicit ECFactoryPredicate(const char* name) : m_name(name) {}
2384 : m_name(factory->name()) {}
2386 {
2387 return m_name == factory->name();
2388 }
2389 std::string m_name;
2390 };
2393
2402
2410 std::vector<ExecutionContextBase*> m_ecs;
2411
2412 // ファクトリ名をリストアップするためのファンクタ
2414 {
2416 {
2417 modlist.emplace_back(f->profile().getProperty("implementation_id"));
2418 }
2419 std::vector<std::string> modlist;
2420 };
2421
2423 {
2425 std::mutex mutex;
2426 std::vector<RTObject_impl*> comps;
2427 };
2429
2431 }; // class Manager
2432} // namespace RTC
2433
2434#endif // RTC_MANAGER_H
ExecutionContext Factory class
RT-Component factory class
component action listener class
Object management class
RTComponent header
RT component logger class
ECFactoryBase 抽象クラス
Definition ECFactory.h:116
virtual const char * name()=0
生成対象ExecutionContext名称取得用純粋仮想関数
ExecutionContext用基底クラス
Definition ExecutionContextBase.h:366
FactoryBase 基底クラス
Definition Factory.h:138
virtual coil::Properties & profile()
コンポーネントプロファイルの取得
Logger クラス
Definition SystemLogger.h:101
Definition Manager.h:2281
FactoryPredicate(FactoryBase *factory)
Definition Manager.h:2295
FactoryPredicate(const char *imple_id)
Definition Manager.h:2283
bool operator()(FactoryBase *factory)
Definition Manager.h:2304
FactoryPredicate(const coil::Properties &prop)
Definition Manager.h:2287
Definition Manager.h:2334
bool operator()(coil::Properties &prop)
Definition Manager.h:2341
ModulePredicate(coil::Properties &prop)
Definition Manager.h:2337
Manager クラス
Definition Manager.h:91
std::string formatString(const char *naming_format, coil::Properties &prop)
NamingServer に登録する際の登録情報を組み立てる
void setEndpointProperty(CORBA::Object_ptr objref)
corba.endpoints にエンドポイント情報を設定する
static void removeTask(TaskId id)
周期実行タスクの削除
Definition Manager.h:426
ReturnCode_t load(const std::string &fname, const std::string &initfunc)
[CORBA interface] モジュールのロード
void cleanupComponent(RTObject_impl *comp)
RTコンポーネントの登録解除
void invokeInitProc()
static Manager * manager
唯一の Manager へのポインタ
Definition Manager.h:2051
bool unregisterComponent(RTObject_impl *comp)
RTコンポーネントの登録を解除する
bool initComposite()
PeriodicECSharedComposite の初期化
bool initExecContext()
ExecutionContextManager の初期化
bool initORB()
CORBA ORB の初期化処理
coil::Argv m_argv
ORB_init に指定する引数
Definition Manager.h:2114
void createORBEndpoints(coil::vstring &endpoints)
エンドポイントの生成
ECFactoryManager m_ecfactory
ExecutionContext マネージャ
Definition Manager.h:2401
Manager()
Protected コンストラクタ
ModuleInitProc m_initProc
ユーザ初期化関数へのポインタ
Definition Manager.h:2138
void addRtcLifecycleActionListener(RTM::RtcLifecycleActionListener *listener, bool autoclean=true)
std::vector< coil::Properties > getLoadableModules()
ロード可能なモジュールリストを取得する
bool registerFactory(coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
RTコンポーネント用ファクトリを登録する
bool initLocalService()
LocalService の初期化
std::vector< coil::Properties > getLoadedModules()
ロード済みのモジュールリストを取得する
Manager(const Manager &)=delete
CORBA::ORB_ptr theORB()
ORB のポインタを取得する (所有権保持)
void shutdownComponents()
NamingManager に登録されている RTコンポーネントの終了処理
coil::Properties m_config
Manager の configuration を格納する Properties
Definition Manager.h:2147
void endpointPropertySwitch(const std::string &ipver, bool &ip, std::vector< int > &ip_list)
corba.endpoint_property からオプション情報を取得する
void initCpuAffinity()
RTM::ManagerServant * m_mgrservant
ManagerServant へのポインタ
Definition Manager.h:1938
CORBA::ORB_var m_pORB
ORB へのポインタ
Definition Manager.h:2081
PortableServer::POAManager_ptr thePOAManager()
Manager が持つ POAManager を取得する (所有権保持)
void initPreCreation()
起動時にrtc.confで指定したRTCを生成する
NamingManager * m_namingManager
NamingManager へのポインタ
Definition Manager.h:2165
std::vector< std::filebuf * > m_logfiles
ログ出力ファイル
Definition Manager.h:2249
bool procContextArgs(const char *ec_args, std::string &ec_id, coil::Properties &ec_conf)
引数文字列からExecutionContext名・プロパティを抽出する
NamingManager * getNaming()
NamingManagerを取得する
ExecutionContextBase * createContext(const char *ec_args)
Contextを生成する
void initPreActivation()
起動時にrtc.confで指定したRTCをアクティベーションする
CORBA::ORB_ptr getORB()
ORB のポインタを取得する (所有権複製)
static Manager & instance()
マネージャのインスタンスの取得
void deleteComponent(RTObject_impl *comp)
Manager に登録されているRTコンポーネントを削除する
bool registerComponent(RTObject_impl *comp)
RTコンポーネントを直接 Manager に登録する
void cleanupComponents()
RTコンポーネントの削除する
std::string createORBOptions()
ORB のコマンドラインオプション作成
static Manager * init(int argc, char **argv)
マネージャの初期化
void createORBEndpointOption(std::string &opt, coil::vstring endpoints)
ORB の Endpoint のコマンドラインオプション作成
bool initLogger()
System logger の初期化
coil::Timer< coil::DelayedFunction > m_invoker
Manager スレッド上での遅延呼び出し用タイマー
Definition Manager.h:2174
static std::mutex mutex
唯一の Manager へのポインタに対する mutex
Definition Manager.h:2060
void mainThread()
Manager メインスレッドのメイン関数
Finalized m_finalized
Definition Manager.h:2428
bool initFactories()
ファクトリの初期化
std::thread m_threadOrb
ORB 用のスレッド
Definition Manager.h:2192
int m_argvSize
ORB_init に指定する引数
Definition Manager.h:2126
FactoryManager m_factory
ComponentManager
Definition Manager.h:2374
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)
初期化プロシージャのセット
void notifyFinalized(RTObject_impl *comp)
RTコンポーネントの削除する
ReturnCode_t load(coil::Properties &prop, const std::string &initfunc)
[CORBA interface] モジュールのロード
PortableServer::POA_var m_pPOA
POA へのポインタ
Definition Manager.h:2090
void addManagerActionListener(RTM::ManagerActionListener *listener, bool autoclean=true)
PortableServer::POA_ptr getPOA()
Manager が持つ RootPOA のポインタを取得する (所有権複製)
bool mergeProperty(coil::Properties &prop, const char *file_name)
プロパティ情報のマージ
void addLocalServiceActionListener(RTM::LocalServiceActionListener *listener, bool autoclean=true)
void initPreConnection()
起動時にrtc.confで指定したポートを接続する
bool registerECFactory(const char *name, ECNewFunc new_func, ECDeleteFunc delete_func)
ExecutionContext用ファクトリを登録する
bool activateManager()
Managerのアクティブ化
ComponentManager m_compManager
コンポーネントマネージャ
Definition Manager.h:2274
RTObject_impl * getComponent(const char *instance_name)
Manager に登録されているRTコンポーネントを検索する
void configureComponent(RTObject_impl *comp, const coil::Properties &prop)
RTコンポーネントのコンフィギュレーション処理
Logger rtclog
ロガーストリーム
Definition Manager.h:2240
PortableServer::POAManager_ptr getPOAManager()
Manager が持つ POAManager を取得する (所有権複製)
static bool isORBEndPoint(const std::string &endpoint)
giopからはじまるORBエンドポイントでの指定した場合にtrue、 それ以外(例えばホスト名:ポート番号の指定)の場合はfalseを返す。
void publishPorts(RTObject_impl *comp)
NamingManager & getNamingManager()
NamingManagerを取得する
std::string & getLogLevel()
コンフィグレーションのログレベルの取得
Definition Manager.h:260
void unload(const char *fname)
モジュールのアンロード
RTM::ManagerServant & getManagerServant()
ManagerServantを取得する
void runManager(bool no_block=false)
Managerの実行
PortableServer::POA_ptr thePOA()
Manager が持つ RootPOA のポインタを取得する (所有権保持)
void shutdown()
マネージャ・シャットダウン
std::list< coil::SignalAction > m_signals
シグナル管理用配列
Definition Manager.h:2210
void initManager(int argc, char **argv)
Manager の内部初期化処理
bool initManagerServant()
ManagerServant の初期化
void shutdownORB()
ORB の終了処理
static std::atomic_flag m_isRunning
メインスレッド停止用フラグ
Definition Manager.h:2069
std::vector< ExecutionContextBase * > m_ecs
ExecutionContext リスト
Definition Manager.h:2410
void initLogstreamOthers()
std::thread m_threadMain
Manager のメインスレッド
Definition Manager.h:2201
void invoke(std::function< void(void)> fn, std::chrono::nanoseconds delay=std::chrono::seconds::zero())
Manger のメインスレッドで処理を実行
void shutdownManagerServant()
Managerサーバント の終了処理
bool m_needsTimer
マネージャーがタイマーを利用するかどうかのフラグ
Definition Manager.h:2219
void unloadAll()
全モジュールのアンロード
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()
ファクトリのプロファイルを取得
void removeModuleActionListener(RTM::ModuleActionListener *listener)
void shutdownNaming()
NamingManager の終了処理
std::vector< std::string > getModulesFactories()
ファクトリ全リストを取得する
PortableServer::POAManager_var m_pPOAManager
POAManager へのポインタ
Definition Manager.h:2102
LogStreamBuf & getLogStreamBuf()
ログバッファの取得
Definition Manager.h:241
std::vector< RTObject_impl * > getComponents()
Manager に登録されている全RTコンポーネントを取得する
bool initNaming()
NamingManager の初期化
void deleteComponent(const char *instance_name)
Manager に登録されているRTコンポーネントを削除する
coil::Properties & getConfig()
マネージャコンフィギュレーションの取得
Definition Manager.h:279
bool procComponentArgs(const char *comp_arg, coil::Properties &comp_id, coil::Properties &comp_conf)
引数文字列からコンポーネント型名・プロパティを抽出する
void removeLocalServiceActionListener(RTM::LocalServiceActionListener *listener)
void initLogstreamFile()
void addModuleActionListener(RTM::ModuleActionListener *listener, bool autoclean=true)
static void terminate()
マネージャ終了処理
void subscribePorts(RTObject_impl *comp)
coil::Timer< coil::PeriodicFunction > m_scheduler
Manager スレッド上での周期呼び出し用タイマー
Definition Manager.h:2183
LogStreamBuf m_logStreamBuf
ロガーバッファ
Definition Manager.h:2231
::RTM::ManagerActionListeners m_listeners
Definition Manager.h:2430
void removeManagerActionListener(RTM::ManagerActionListener *listener)
TaskId addTask(std::function< void(void)> fn, std::chrono::nanoseconds period)
周期実行タスクの登録
void shutdownLogger()
System Logger の終了処理
void addNamingActionListener(RTM::NamingActionListener *listener, bool autoclean=true)
RTObject_impl * createComponent(const char *comp_args)
RTコンポーネントを生成する
ModuleManager * m_module
ModuleManager へのポインタ
Definition Manager.h:2156
void join()
マネージャ終了処理の待ち合わせ
Manager & operator=(const Manager &)=delete
モジュールマネージャクラス
Definition ModuleManager.h:72
NamingServer 管理クラス
Definition NamingManager.h:626
RTコンポーネントクラス
Definition RTObject.h:93
LocalServiceActionListener クラス
Definition ManagerActionListener.h:716
Definition ManagerActionListener.h:62
ManagerActionListeners クラス
Definition ManagerActionListener.h:967
ManagerのCORBA化クラス
Definition ManagerServant.h:66
ModuleActionListener クラス
Definition ManagerActionListener.h:193
NamingActionListener クラス
Definition ManagerActionListener.h:558
RtcLifecycleActionListener クラス
Definition ManagerActionListener.h:355
RTコンポーネント
void(*)(Manager *) ModuleInitProc
Definition Manager.h:68
ExecutionContextBase *(*)() ECNewFunc
Definition ECFactory.h:29
void(*)(RTObject_impl *) RtcDeleteFunc
Definition Factory.h:34
void(*)(ExecutionContextBase *) ECDeleteFunc
Definition ECFactory.h:30
RTObject_impl *(*)(Manager *) RtcNewFunc
Definition Factory.h:33
::coil::LogStreamBuffer LogStreamBuf
Definition SystemLogger.h:34
RT-Middleware
Definition FactoryInit.h:22
Definition DefaultPeriodicTask.h:24
Definition Manager.h:2381
ECFactoryPredicate(ECFactoryBase *factory)
Definition Manager.h:2383
bool operator()(ECFactoryBase *factory)
Definition Manager.h:2385
std::string m_name
Definition Manager.h:2389
ECFactoryPredicate(const char *name)
Definition Manager.h:2382
Definition Manager.h:2423
std::mutex mutex
Definition Manager.h:2425
std::vector< RTObject_impl * > comps
Definition Manager.h:2426
Definition Manager.h:2256
InstanceName(std::string name)
InstanceName(const char *name)
InstanceName(RTObject_impl *comp)
std::string m_name
Definition Manager.h:2261
bool operator()(RTObject_impl *comp)
Definition Manager.h:2414
void operator()(FactoryBase *f)
Definition Manager.h:2415
std::vector< std::string > modlist
Definition Manager.h:2419