Go to the documentation of this file.
9 #ifndef SOT_CORE_VARIADICOP_HH
10 #define SOT_CORE_VARIADICOP_HH
17 #include <dynamic-graph/linear-algebra.h>
20 #include <dynamic-graph/all-signals.h>
21 #include <dynamic-graph/entity.h>
29 #include <boost/function.hpp>
38 template <
typename Tin,
typename Tout,
typename Time>
45 : Entity(name),
SOUT(className +
"(" + name +
")::output(" +
47 baseSigname(className +
"(" + name +
")::input(" +
getTypeInName() +
49 signalRegistration(
SOUT);
53 for (std::size_t i = 0; i <
signalsIN.size(); ++i) {
59 SignalTimeDependent<Tout, int>
SOUT;
62 std::ostringstream oss;
89 const std::size_t oldSize =
signalsIN.size();
90 for (std::size_t i = n; i < oldSize; ++i)
95 for (std::size_t i = oldSize; i < (std::size_t)n; ++i) {
97 std::ostringstream oss;
98 oss << baseSigname <<
"sin" << i;
116 void _removeSignal(
const std::size_t i) {
118 signalDeregistration(
signalsIN[i]->shortName());
123 signalRegistration(*s);
124 SOUT.addDependency(*s);
126 const std::string baseSigname;
129 template <
typename Operator>
131 typename Operator::Tout, int> {
133 typedef typename Operator::Tin Tin;
134 typedef typename Operator::Tout Tout;
149 op.initialize(
this, this->commandMap);
156 std::vector<const Tin *> in(this->signalsIN.size());
157 for (std::size_t i = 0; i < this->signalsIN.size(); ++i) {
158 const Tin &x = this->signalsIN[i]->access(time);
168 #endif // #ifndef SOT_CORE_VARIADICOP_HH
virtual ~VariadicAbstract(void)
Definition: variadic-op.hh:52
Definition: exception-abstract.hh:35
Definition: abstract-sot-external-interface.hh:17
void removeSignal()
Definition: variadic-op.hh:80
std::size_t addSignal(const std::string &name)
Definition: variadic-op.hh:67
Tout & computeOperation(Tout &res, int time)
Definition: variadic-op.hh:155
int getSignalNumber() const
Definition: variadic-op.hh:107
VariadicAbstract(const std::string &name, const std::string &className)
Definition: variadic-op.hh:44
VariadicOp(const std::string &name)
Definition: variadic-op.hh:147
SignalPtr< Operator::Tin, int > signal_t
Definition: variadic-op.hh:110
Definition: variadic-op.hh:39
static const std::string CLASS_NAME
Definition: variadic-op.hh:143
static std::string getTypeInName(void)
SignalTimeDependent< Tout, int > SOUT
Definition: variadic-op.hh:56
virtual ~VariadicOp(void)
Definition: variadic-op.hh:152
static std::string getTypeOutName(void)
virtual const std::string & getClassName() const
Definition: variadic-op.hh:144
std::vector< signal_t * > signalsIN
Definition: variadic-op.hh:111
std::string getDocString() const
Definition: variadic-op.hh:145
Definition: variadic-op.hh:130
std::size_t addSignal()
Definition: variadic-op.hh:61
VariadicAbstract< Tin, Tout, int > Base
Definition: variadic-op.hh:138
void setSignalNumber(const int &n)
Definition: variadic-op.hh:87