OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
ECFactory.h
[詳解]
1// -*- C++ -*-
20#ifndef RTC_ECFACTORY_H
21#define RTC_ECFACTORY_H
22
24#include <string>
25
26namespace RTC
27{
28
31
51 template <class T_New>
53 {
54 return new T_New();
55 }
56
76 template <class T_Delete>
78 {
79 delete ec;
80 }
81
116 {
117 public:
133 virtual ~ECFactoryBase() = default;
134
156 virtual const char* name() = 0;
157
178
198 virtual void destroy(ExecutionContextBase* comp) = 0;
199 protected:
200 };
201
222 : public ECFactoryBase
223 {
224 public:
248 ECFactoryCXX(const char* name,
249 ECNewFunc new_func,
250 ECDeleteFunc delete_func);
251
267 ~ECFactoryCXX() override;
268
288 const char* name() override;
289
310
330 void destroy(ExecutionContextBase* ec) override;
331
332 protected:
340 std::string m_name;
341
350
359 };
360} // namespace RTC
361#endif // RTC_ECFACTORY_H
ExecutionContext base class
ECFactoryBase 抽象クラス
Definition ECFactory.h:116
virtual const char * name()=0
生成対象ExecutionContext名称取得用純粋仮想関数
virtual ~ECFactoryBase()=default
仮想デストラクタ
virtual ExecutionContextBase * create()=0
ExecutionContext生成用純粋仮想関数
virtual void destroy(ExecutionContextBase *comp)=0
ExecutionContext破棄用純粋仮想関数
ECFactoryCXX クラス
Definition ECFactory.h:223
ECNewFunc m_New
対象ExecutionContext生成用関数
Definition ECFactory.h:349
ExecutionContextBase * create() override
生成対象ExecutionContextインスタンスを生成
void destroy(ExecutionContextBase *ec) override
対象ExecutionContextインスタンスを破棄
ECFactoryCXX(const char *name, ECNewFunc new_func, ECDeleteFunc delete_func)
コンストラクタ
ECDeleteFunc m_Delete
対象ExecutionContext破棄用関数
Definition ECFactory.h:358
const char * name() override
生成対象ExecutionContext名称を取得
std::string m_name
生成対象ExecutionContext名称
Definition ECFactory.h:340
~ECFactoryCXX() override
仮想デストラクタ
ExecutionContext用基底クラス
Definition ExecutionContextBase.h:366
RTコンポーネント
ExecutionContextBase *(*)() ECNewFunc
Definition ECFactory.h:29
void(*)(ExecutionContextBase *) ECDeleteFunc
Definition ECFactory.h:30
void ECDelete(ExecutionContextBase *ec)
ExecutionContext破棄用テンプレート関数
Definition ECFactory.h:77
ExecutionContextBase * ECCreate()
ExecutionContext生成用テンプレート関数
Definition ECFactory.h:52