49 template<constra
int::Type T>
53 template<constra
int::Type T>
55 const task_dynamics::abstract::TaskDynamics & td,
56 const requirements::SolvingRequirements & req = {});
57 template<constra
int::Type T>
58 TaskWithRequirementsPtr add(utils::LinearProtoTask<T> proto,
const requirements::SolvingRequirements & req = {});
61 const std::vector<TaskWithRequirementsPtr> &
tasks()
const;
81 template<
typename T,
typename... Args>
82 void addInput(std::shared_ptr<T> source, Args... args);
84 void removeInput(T * source);
95 std::shared_ptr<graph::internal::Inputs> inputs_;
115 std::vector<TaskWithRequirementsPtr> tr_;
121 std::map<scheme::identifier, std::unique_ptr<scheme::internal::ProblemComputationData>> computationData_;
123 bool finalized_ =
false;
125 template<
typename Problem,
typename Scheme>
128 const Scheme & resolutionScheme);
131 template<constra
int::Type T>
135 {
return add({proto, td}, req); }
137 template<constra
int::Type T>
141 {
return add({proto, td}, req); }
143 template<constra
int::Type T>
148 template<
typename T,
typename... Args>
151 inputs_->addInput(source, args...);
158 inputs_->removeInput(source);
#define TVM_DLLAPI
Definition: api.h:35
Definition: ControlProblem.h:77
void removeInput(T *source)
Definition: ControlProblem.h:156
const graph::CallGraph & updateGraph() const
void addInput(std::shared_ptr< T > source, Args... args)
Definition: ControlProblem.h:149
Definition: ControlProblem.h:33
ControlProblem & operator=(const ControlProblem &)=delete
virtual void finalize_()
Definition: ControlProblem.h:100
void notify(const scheme::internal::ProblemDefinitionEvent &e)
ControlProblem(const ControlProblem &)=delete
void add(TaskWithRequirementsPtr tr)
const graph::CallGraph & updateGraph() const
virtual void update_()
Definition: ControlProblem.h:99
TaskWithRequirementsPtr add(const Task &task, const requirements::SolvingRequirements &req={})
void remove(const TaskWithRequirements &tr)
const std::vector< TaskWithRequirementsPtr > & tasks() const
Updater updater_
Definition: ControlProblem.h:105
Definition: LinearizedControlProblem.h:24
Definition: ControlProblem.h:22
Task task
Definition: ControlProblem.h:26
requirements::SolvingRequirementsWithCallbacks requirements
Definition: ControlProblem.h:27
TaskWithRequirements(const Task &task, requirements::SolvingRequirements req)
Definition: CallGraph.h:23
Definition: ObjWithId.h:14
Definition: SolvingRequirements.h:108
Definition: SolvingRequirements.h:103
Definition: ProblemComputationData.h:27
Definition: ProblemDefinitionEvent.h:19
Definition: TaskDynamics.h:37
Definition: ProtoTask.h:29
ProblemComputationData * getComputationData(Problem &problem, const Scheme &resolutionScheme)
std::map< KeyWithId, Value, IdLess< KeyWithId >, Allocator > map
Definition: map.h:41
std::shared_ptr< TaskWithRequirements > TaskWithRequirementsPtr
Definition: ControlProblem.h:30