Template of Module

Configuration Class

//===========================================================================================
class TXxConfigurations
//===========================================================================================
{
public:

  TReal   TestC;

  TXxConfigurations (var_space::TVariableMap &mmap) :
      TestC     (0.0l)
    {
      Register(mmap);
    }
  void Register (var_space::TVariableMap &mmap)
    {
      #define ADD(x_member)  AddToVarMap(mmap, #x_member, x_member)
      ADD( TestC );
      #undef ADD
    }
};
//-------------------------------------------------------------------------------------------

Memory Class

//===========================================================================================
class TXxMemory
//===========================================================================================
{
public:

  TReal   TestM;

  TXxMemory (var_space::TVariableMap &mmap) :
      TestM     (0.0l)
    {
      Register(mmap);
    }
  void Register (var_space::TVariableMap &mmap)
    {
      #define ADD(x_member)  AddToVarMap(mmap, #x_member, x_member)
      ADD( TestM );
      #undef ADD
    }
};
//-------------------------------------------------------------------------------------------

Module Class

//===========================================================================================
//!\brief XX module
class MXxModule
    : public MParentModule
//===========================================================================================
{
public:
  typedef MParentModule       TParent;  // optional
  typedef MXxModule           TThis;    // optional
  SKYAI_MODULE_NAMES(MXxModule)  // mandatory

  MXxModule (const std::string &v_instance_name)
    : TParent        (v_instance_name),   // mandatory
      conf_          (TParent::param_box_config_map()),
      mem_           (TParent::param_box_memory_map()),
      slot_slot1     (*this),   // optional
      signal_signal1 (*this),   // optional
      out_out1       (*this),   // optional
      in_in1         (*this)    // optional
    {
      add_slot_port (slot_slot1);         // optional
      add_signal_port (signal_signal1);   // optional
      add_out_port (out_out1);            // optional
      add_in_port (in_in1);               // optional
    }

protected:

  TXxConfigurations  conf_;   // optional
  TXxMemory          mem_;    // optional

  MAKE_SLOT_PORT(slot_slot1, TOutType, (const TInType &x), (x), TThis);        // optional

  MAKE_SIGNAL_PORT(signal_signal1, const TOutType& (const TInType &), TThis);  // optional

  MAKE_OUT_PORT(out_out1, const TOutType&, (const TInType &x), (x), TThis);    // optional

  MAKE_IN_PORT(in_in1, const TOutType& (const TInType &), TThis);              // optional

  virtual TOutType slot_slot1_exec (const TInType &x)                          // optional
    {
      ...
    }

  virtual const TOutType& out_out1_get (const TInType &x) const                // optional
    {
      ...
    }
};  // end of MXxModule
//-------------------------------------------------------------------------------------------

Adding Module

SKYAI_ADD_MODULE(MXxModule)

Front page   New List of pages Search Recent changes   Help   RSS of recent changes