sot-core
4.11.8
Hierarchical task solver plug-in for dynamic-graph.
|
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>
28 #include <boost/function.hpp>
38 template <
typename Tin,
typename Tout,
typename Time>
48 baseSigname(className +
"(" + name +
")::input(" +
getTypeInName() +
50 signalRegistration(
SOUT);
54 for (std::size_t i = 0; i <
signalsIN.size(); ++i) {
60 typedef SignalPtr<Tin, int>
signal_t;
61 SignalTimeDependent<Tout, int>
SOUT;
64 std::ostringstream oss;
91 const std::size_t oldSize =
signalsIN.size();
92 for (std::size_t i = n; i < oldSize; ++i) _removeSignal(i);
96 for (std::size_t i = oldSize; i < (std::size_t)n; ++i) {
98 std::ostringstream oss;
99 oss << baseSigname <<
"sin" << i;
113 throw std::out_of_range(
"Wrong signal index");
125 void _removeSignal(
const std::size_t i) {
127 signalDeregistration(
signalsIN[i]->shortName());
132 signalRegistration(*s);
133 SOUT.addDependency(*s);
135 const std::string baseSigname;
138 template <
typename Operator>
140 typename Operator::Tout, int> {
141 typedef typename Operator::Tin Tin;
142 typedef typename Operator::Tout Tout;
159 op.initialize(
this, this->commandMap);
166 std::vector<const Tin *> in(this->signalsIN.size());
167 for (std::size_t i = 0; i < this->signalsIN.size(); ++i) {
168 const Tin &x = this->signalsIN[i]->access(time);
180 #endif // #ifndef SOT_CORE_VARIADICOP_HH
Operator op
Definition: variadic-op.hh:146
virtual ~VariadicAbstract(void)
Definition: variadic-op.hh:53
Definition: exception-abstract.hh:36
Definition: abstract-sot-external-interface.hh:17
void removeSignal()
Definition: variadic-op.hh:82
std::size_t addSignal(const std::string &name)
Definition: variadic-op.hh:69
Tout & computeOperation(Tout &res, int time)
Definition: variadic-op.hh:165
signal_t * getSignalIn(int i)
Definition: variadic-op.hh:111
virtual void updateSignalNumber(int n)
Definition: variadic-op.hh:122
int getSignalNumber() const
Definition: variadic-op.hh:109
VariadicAbstract(const std::string &name, const std::string &className)
Definition: variadic-op.hh:44
VariadicOp(const std::string &name)
Definition: variadic-op.hh:157
SignalPtr< Tin, int > signal_t
Definition: variadic-op.hh:57
Definition: variadic-op.hh:39
static const std::string CLASS_NAME
Definition: variadic-op.hh:153
static std::string getTypeInName(void)
SignalTimeDependent< Tout, int > SOUT
Definition: variadic-op.hh:61
virtual ~VariadicOp(void)
Definition: variadic-op.hh:162
static std::string getTypeOutName(void)
virtual const std::string & getClassName() const
Definition: variadic-op.hh:154
std::vector< signal_t * > signalsIN
Definition: variadic-op.hh:118
std::string getDocString() const
Definition: variadic-op.hh:155
void updateSignalNumber(int n)
Definition: variadic-op.hh:175
Definition: variadic-op.hh:139
std::size_t addSignal()
Definition: variadic-op.hh:63
VariadicAbstract< Tin, Tout, int > Base
Definition: variadic-op.hh:148
void setSignalNumber(const int &n)
Definition: variadic-op.hh:89