48#ifndef GUM_SCHEDULE_STORAGE_H
49#define GUM_SCHEDULE_STORAGE_H
64#ifndef DOXYGEN_SHOULD_SKIP_THIS
66 namespace ScheduleStorageMethod {
76 template <
typename TABLE,
typename CONTAINER_TABLE,
template <
typename... >
class CONTAINER >
78 void execute(TABLE& table, CONTAINER< CONTAINER_TABLE >& container);
85 template <
typename TABLE >
86 struct Execution< TABLE, TABLE*, Set > {
87 void execute(TABLE& table, Set< TABLE* >& container);
94 template <
typename TABLE >
95 struct Execution< TABLE, TABLE, std::vector > {
96 void execute(TABLE& table, std::vector< TABLE >& container);
109 template <
typename TABLE,
template <
typename... >
class CONTAINER >
112 private ScheduleStorageMethod::
113 Execution< typename std::remove_pointer< TABLE >::type, TABLE, CONTAINER > {
The Table-agnostic base class of scheduleMultiDim.
a Wrapper for multi-dimensional tables used for scheduling inferences
ScheduleOperator(const ScheduleOperatorType type, const bool imply_deletion, const bool are_results_persistent)
default constructor
void execute() final
really executes the operator
ScheduleStorage< TABLE, CONTAINER > * clone() const final
virtual copy constructor
std::string toString() const final
displays the content of the operator
double nbOperations() const final
returns an estimation of the number of elementary operations needed to perform the ScheduleOperator
const Sequence< const IScheduleMultiDim * > & args() const final
returns the sequence of arguments passed to the operator
std::pair< double, double > memoryUsage() const final
returns the memory consumption used during the execution of the operator
const ScheduleMultiDim< SCHED_TABLE > & arg() const
returns the argument of the storing function
ScheduleStorage(ScheduleStorage< TABLE, CONTAINER > &&from)
move constructor
Sequence< const IScheduleMultiDim * > _args_
the sequence of arguments passed to the operator
void undo() final
undo a previous execution, if any
typename std::remove_pointer< TABLE >::type SCHED_TABLE
bool hasSameArguments(const ScheduleOperator &) const final
checks whether two ScheduleStorage have the same parameters (same variables and same content,...
ScheduleMultiDim< SCHED_TABLE > * _arg_
the table to store
bool isExecuted() const final
indicates whether the operator has been executed
ScheduleStorage(const ScheduleStorage< TABLE, CONTAINER > &from)
copy constructor
ScheduleStorage(const IScheduleMultiDim &table, CONTAINER< TABLE > &container)
default constructor
bool isSameOperator(const ScheduleOperator &) const final
checks whether two ScheduleOperator perform the same operation
bool _is_executed_
indicates whether the operator has been performed or not
const Sequence< const IScheduleMultiDim * > & results() const final
returns the sequence of ScheduleMultidim output by the operator
void updateArgs(const Sequence< const IScheduleMultiDim * > &new_args) final
modifies the arguments of the operator
CONTAINER< TABLE > * _container_
the container into which the table is stored
bool hasSimilarArguments(const ScheduleOperator &) const final
checks whether two ScheduleProjection have similar parameters (same variables but not necessarily the...
Sequence< const IScheduleMultiDim * > _results_
the sequence of ScheduleMultidim output by the operator
The generic class for storing (ordered) sequences of objects.
gum is the global namespace for all aGrUM entities
a Wrapper for multi-dimensional tables used for scheduling inferences
the base class for "low-level" operators used to schedule inferences
Base class for storing multidimensional tables in scheduling inferences.