diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-12-31 12:41:42 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-12-31 12:41:42 +0000 |
| commit | 820b73f2abdf51bd59cb5b74739fb6f264b7c54e (patch) | |
| tree | 9322528d7c3e8e7aa23cdcbca35ebf17bba67529 /NT/src/nodes.h | |
| parent | d9abdcbce9f0c3c7dbfebc00827e05536cb196e4 (diff) | |
factory not working with templates
Diffstat (limited to 'NT/src/nodes.h')
| -rw-r--r-- | NT/src/nodes.h | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/NT/src/nodes.h b/NT/src/nodes.h index 5bb8830..8ce7cdd 100644 --- a/NT/src/nodes.h +++ b/NT/src/nodes.h @@ -1,45 +1,51 @@ +#ifndef ROTOR_NODES_H +#define ROTOR_NODES_H + #include "rotor.h" -namespace Rotor { - class time: public Node_type<double> { + +using namespace std; + +namespace Rotor{ + class Time: public Node_type<double> { public: - time(){}; - time(map<string,string> &settings):time() { + Time(){}; + Time(map<string,string> &settings):Time() { init(settings); }; const double &get_output(const Frame_parameters &frame){ value=frame.time; return value; } - time* clone(map<string,string> &_settings) { return new time(_settings);}; + Time* clone(map<string,string> &_settings) { return new Time(_settings);}; private: double value; }; - class multiply: public Node_type<double> { + class Multiply: public Node_type<double> { public: - multiply(){ + Multiply(){ inlet=create_inlet<double>("inlet"); value=create_inlet<double>("value"); } - multiply(map<string,string> &settings):multiply() { + Multiply(map<string,string> &settings):Multiply() { init(settings); }; const double &get_output(const Frame_parameters &frame){ result=inlet->get(frame)*value->get(frame); return result; } - multiply* clone(map<string,string> &_settings) { return new multiply(_settings);}; + Multiply* clone(map<string,string> &_settings) { return new Multiply(_settings);}; private: Variable_type<double> *inlet; Variable_type<double> *value; double result; }; - class print: public Node_type<std::string> { + class Print: public Node_type<std::string> { public: - print(){ + Print(){ inlet=create_inlet<double>("inlet"); } - print(map<string,string> &settings):print() { + Print(map<string,string> &settings):Print() { init(settings); }; const std::string &get_output(const Frame_parameters &frame){ @@ -48,9 +54,12 @@ namespace Rotor { result=out.str(); return result; } - print* clone(map<string,string> &_settings) { return new print(_settings);}; + Print* clone(map<string,string> &_settings) { return new Print(_settings);}; private: Variable_type<double> *inlet; std::string result; }; } + + +#endif //ROTOR_NODES_H |
