sot-core
4.11.1
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>
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 typedef SignalPtr<Tin, int>
signal_t;
60 SignalTimeDependent<Tout, int>
SOUT;
63 std::ostringstream oss;
90 const std::size_t oldSize =
signalsIN.size();
91 for (std::size_t i = n; i < oldSize; ++i)
96 for (std::size_t i = oldSize; i < (std::size_t)n; ++i) {
98 std::ostringstream oss;
99 oss << baseSigname <<
"sin" << i;
114 throw std::out_of_range(
"Wrong signal index");
126 void _removeSignal(
const std::size_t i) {
128 signalDeregistration(
signalsIN[i]->shortName());
133 signalRegistration(*s);
134 SOUT.addDependency(*s);
136 const std::string baseSigname;
139 template <
typename Operator>
141 typename Operator::Tout, int> {
142 typedef typename Operator::Tin Tin;
143 typedef typename Operator::Tout Tout;
160 op.initialize(
this, this->commandMap);
167 std::vector<const Tin *> in(this->signalsIN.size());
168 for (std::size_t i = 0; i < this->signalsIN.size(); ++i) {
169 const Tin &x = this->signalsIN[i]->access(time);
181 #endif // #ifndef SOT_CORE_VARIADICOP_HH
Operator op
Definition: variadic-op.hh:147
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:81
std::size_t addSignal(const std::string &name)
Definition: variadic-op.hh:68
Tout & computeOperation(Tout &res, int time)
Definition: variadic-op.hh:166
signal_t * getSignalIn(int i)
Definition: variadic-op.hh:111
virtual void updateSignalNumber(int n)
Definition: variadic-op.hh:123
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:158
SignalPtr< Tin, int > signal_t
Definition: variadic-op.hh:56
Definition: variadic-op.hh:39
static const std::string CLASS_NAME
Definition: variadic-op.hh:154
static std::string getTypeInName(void)
SignalTimeDependent< Tout, int > SOUT
Definition: variadic-op.hh:60
virtual ~VariadicOp(void)
Definition: variadic-op.hh:163
static std::string getTypeOutName(void)
virtual const std::string & getClassName() const
Definition: variadic-op.hh:155
std::vector< signal_t * > signalsIN
Definition: variadic-op.hh:119
std::string getDocString() const
Definition: variadic-op.hh:156
void updateSignalNumber(int n)
Definition: variadic-op.hh:176
Definition: variadic-op.hh:140
std::size_t addSignal()
Definition: variadic-op.hh:62
VariadicAbstract< Tin, Tout, int > Base
Definition: variadic-op.hh:149
void setSignalNumber(const int &n)
Definition: variadic-op.hh:88