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)