20 #ifndef _SIGNAL_FUNCTION_H_
21 #define _SIGNAL_FUNCTION_H_
23 #include "mbsim/functions/function.h"
24 #include "mbsimControl/signal_.h"
25 #include "mbsim/element.h"
26 #include "mbsim/functions/function.h"
28 namespace MBSimControl {
31 template<
typename Sig>
35 template<
typename Ret,
typename Arg>
40 void setReturnSignal(
Signal *ret_);
42 virtual Ret operator()(
const Arg& a) {
46 void init(MBSim::Element::InitStage stage);
48 void initializeUsingXML(xercesc::DOMElement *element);
53 std::string retString;
57 template<
typename Ret,
typename Arg>
62 template<
typename Ret,
typename Arg>
63 void SignalFunction<Ret(Arg)>::initializeUsingXML(xercesc::DOMElement *element) {
65 xercesc::DOMElement *e;
66 e=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIMCONTROL%
"returnSignal");
67 retString=MBXMLUtils::E(e)->getAttribute(
"ref");
70 template<
typename Ret,
typename Arg>
71 void SignalFunction<Ret(Arg)>::init(MBSim::Element::InitStage stage) {
72 if(stage==MBSim::Element::resolveXMLPath) {
74 setReturnSignal(this->
template getByPath<Signal>(retString));
82 template<
typename Ret,
typename Arg1,
typename Arg2>
87 void setReturnSignal(
Signal *ret_);
89 virtual Ret operator()(
const Arg1& a1,
const Arg2& a2) {
93 void init(MBSim::Element::InitStage stage);
95 void initializeUsingXML(xercesc::DOMElement *element);
100 std::string retString;
104 template<
typename Ret,
typename Arg1,
typename Arg2>
109 template<
typename Ret,
typename Arg1,
typename Arg2>
110 void SignalFunction<Ret(Arg1, Arg2)>::initializeUsingXML(xercesc::DOMElement *element) {
112 xercesc::DOMElement *e;
113 e=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIMCONTROL%
"returnSignal");
114 retString=MBXMLUtils::E(e)->getAttribute(
"ref");
117 template<
typename Ret,
typename Arg1,
typename Arg2>
118 void SignalFunction<Ret(Arg1, Arg2)>::init(MBSim::Element::InitStage stage) {
119 if(stage==MBSim::Element::resolveXMLPath) {
121 setReturnSignal(this->
template getByPath<Signal>(retString));
A function which get its return value from a signal.
Definition: signal_function.h:32
Signal.
Definition: signal_.h:37