OpenRTM-aist  1.2.1
Factory.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTC_FACTORY_H
21 #define RTC_FACTORY_H
22 
23 #include <coil/Properties.h>
25 #include <rtm/NumberingPolicy.h>
26 
27 
28 namespace RTC
29 {
30  class RTObject_impl;
31  class Manager;
32 
33  typedef RTObject_impl* (*RtcNewFunc)(Manager* manager);
34  typedef void (*RtcDeleteFunc)(RTObject_impl* rtc);
35 
64  template <class _New>
66  {
67  return new _New(manager);
68  }
69 
91  template <class _Delete>
92  void Delete(RTObject_impl* rtc)
93  {
94  delete rtc;
95  }
96 
119  {
120  public:
141 
155  virtual ~FactoryBase(void);
156 
180  virtual RTObject_impl* create(Manager* mgr) = 0;
181 
201  virtual void destroy(RTObject_impl* comp) = 0;
202 
222  virtual coil::Properties& profile();
223 
243  virtual int number();
244 
245  protected:
254 
262  int m_Number;
263  };
264 
287  : public FactoryBase
288  {
289  public:
324  RtcNewFunc new_func,
325  RtcDeleteFunc delete_func,
327 
328  virtual ~FactoryCXX()
329  {
330  delete m_policy;
331  }
332 
356  virtual RTObject_impl* create(Manager* mgr);
357 
377  virtual void destroy(RTObject_impl* comp);
378 
379  protected:
388 
397 
406  };
407 };
408 #endif // RTC_FACTORY_H
virtual ~FactoryCXX()
Definition: Factory.h:328
RTObject_impl *(* RtcNewFunc)(Manager *manager)
Definition: Factory.h:33
オブジェクト生成時ネーミング・ポリシー(命名規則)管理用クラス
Definition: NumberingPolicy.h:52
virtual RTObject_impl * create(Manager *mgr)=0
コンポーネントの生成
RTM::NumberingPolicyBase * m_policy
コンポーネント生成時の命名ポリシー
Definition: Factory.h:405
int m_Number
現在のインスタンス数
Definition: Factory.h:262
RTコンポーネント
virtual coil::Properties & profile()
コンポーネントプロファイルの取得
virtual ~FactoryBase(void)
デストラクタ
RTコンポーネントクラス
Definition: RTObject.h:89
Manager クラス
Definition: Manager.h:81
coil::Properties m_Profile
コンポーネントのプロファイル
Definition: Factory.h:253
void Delete(RTObject_impl *rtc)
RTコンポーネント破棄用テンプレート関数
Definition: Factory.h:92
virtual int number()
現在のインスタンス数の取得
RTObject_impl * Create(Manager *manager)
RTコンポーネント生成用テンプレート関数
Definition: Factory.h:65
virtual void destroy(RTObject_impl *comp)=0
コンポーネントの破棄
FactoryBase(const coil::Properties &profile)
コンストラクタ
RtcNewFunc m_New
コンポーネントオブジェクト生成関数へのポインタ
Definition: Factory.h:387
プロパティセットを表現するクラス
Definition: Properties.h:101
FactoryBase 基底クラス
Definition: Factory.h:118
Property list class (derived from Java Properties)
void(* RtcDeleteFunc)(RTObject_impl *rtc)
Definition: Factory.h:34
FactoryCXX クラス
Definition: Factory.h:286
Object numbering policy base class.
オブジェクト生成時ネーミング・ポリシー(命名規則)管理用抽象クラス
Definition: NumberingPolicyBase.h:55
RtcDeleteFunc m_Delete
コンポーネントオブジェクト破棄関数へのポインタ
Definition: Factory.h:396