Ignore:
Timestamp:
08/01/13 10:45:50 (11 years ago)
Author:
Marek Kurdej
Message:

Major update.
Renamed: addInput -> addInputs, addOutput -> addOutputs and made pure virtual (=0).
Transformed macro definitions into template methods: ADD_INPUT -> ComponentBase::addInput, ADD_OUTPUT -> ComponentBase::addOutput, GET_INPUT -> ComponentBase::getTypedInput, GET_OUTPUT -> ComponentBase::getTypedOutput.
Fixed: added public/protected set/get methods in ComponentBase, made member fields private.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0-beta1/include/Pacpus/kernel/InputOutputInterface.h

    r148 r152  
    1212#include <QByteArray>
    1313
    14 #define ADD_INPUT(name,ComponentType, DataType, functionName)  input.insert(name,new InputInterface<DataType,ComponentType> (name,this,&ComponentType::functionName))
    15 #define ADD_OUTPUT(name,ComponentType, DataType)      output.insert(name,new OutputInterface<DataType,ComponentType> (name,this))
    16 
    17 #define GET_OUTPUT(name,ComponentType, DataType) dynamic_cast<OutputInterface<DataType,ComponentType> *> (output.value(name))
    18 #define GET_INPUT(name,ComponentType, DataType) dynamic_cast<InputInterface<DataType,ComponentType> *> (input.value(name))
     14//#define ADD_INPUT(name, ComponentType, DataType, functionName) \
     15//    inputs().insert((name), new InputInterface<DataType, ComponentType> ((name), this, &ComponentType::functionName))
     16//#define ADD_OUTPUT(name, ComponentType, DataType) \
     17//    outputs().insert((name), new OutputInterface<DataType, ComponentType> ((name), this))
     18
     19//#define GET_INPUT(name, ComponentType, DataType) \
     20//    dynamic_cast<InputInterface<DataType, ComponentType> *> (input.value(name))
     21//#define GET_OUTPUT(name, ComponentType, DataType) \
     22//    dynamic_cast<OutputInterface<DataType, ComponentType> *> (output.value(name))
    1923
    2024namespace pacpus {
    2125
    22 template <class T, class C>
     26template <typename T, class C>
    2327class InputInterface
    2428    : public InputInterfaceBase
     
    2630public:
    2731    InputInterface(QString name, C * component, void (C::*m)(const T&))
    28         : InputInterfaceBase(name,component,component)
     32        : InputInterfaceBase(name, component, component)
    2933        , method(m)
    3034    {}
     
    140144};
    141145
    142 template <class T, class C>
     146template <typename T, class C>
    143147class OutputInterface : public OutputInterfaceBase
    144148{
Note: See TracChangeset for help on using the changeset viewer.