47#ifndef GUM_SCHEDULE_OPERATOR_H
48#define GUM_SCHEDULE_OPERATOR_H
102 const bool imply_deletion,
103 const bool are_results_persistent);
The Table-agnostic base class of scheduleMultiDim.
virtual bool isSameOperator(const ScheduleOperator &) const
checks whether two ScheduleOperator perform the same operator
ScheduleOperatorType type() const
returns the type of the operator
bool hasPersistentResults() const
shows whether the operator has persistent results
ScheduleOperator & operator=(const ScheduleOperator &from)
copy operator
ScheduleOperator & operator=(ScheduleOperator &&from)
move operator
bool _imply_deletion_
indicates whether the operator will delete some of the ScheduleMultiDim passed as its arguments
virtual bool isExecuted() const =0
indicates whether the operator has been executed
virtual bool hasSameArguments(const ScheduleOperator &) const =0
checks whether two ScheduleOperator have similar parameters (same variables and same content)
virtual std::pair< double, double > memoryUsage() const =0
returns the memory consumption used by the operator
virtual double nbOperations() const =0
returns an estimation of the number of elementary operations needed to perform the ScheduleOperator
ScheduleOperator(const ScheduleOperator &from)
copy constructor
ScheduleOperatorType _op_type_
the name of the operator to perform
virtual ~ScheduleOperator()
destructor
bool _result_persistent_
is the result persistent
void makeResultsPersistent(const bool is_persistent)
makes the results of the operator persistent or not
virtual std::string toString() const =0
displays the content of the operator
virtual bool operator!=(const ScheduleOperator &) const
operator !=
virtual void updateArgs(const Sequence< const IScheduleMultiDim * > &new_args)=0
modifies the arguments of the operator
virtual const Sequence< const IScheduleMultiDim * > & args() const =0
returns the sequence of arguments passed to the operator
virtual ScheduleOperator * clone() const =0
virtual copy constructor
virtual const Sequence< const IScheduleMultiDim * > & results() const =0
returns the sequence of ScheduleMultidim output by the operator
ScheduleOperator(const ScheduleOperatorType type, const bool imply_deletion, const bool are_results_persistent)
default constructor
virtual void execute()=0
really executes the operator
bool implyDeletion() const
indicates whether the operator deletes some of its arguments
virtual bool hasSimilarArguments(const ScheduleOperator &) const =0
checks whether two ScheduleOperator have similar parameters (same variables)
virtual bool operator==(const ScheduleOperator &) const
operator ==
virtual void undo()=0
undo a previous execution, if any
ScheduleOperator(ScheduleOperator &&from)
move constructor
The generic class for storing (ordered) sequences of objects.
gum is the global namespace for all aGrUM entities
ScheduleOperatorType
the currently supported types of "low-level" operators
@ STORE_MULTIDIM
store a multidimensional table outside of the scheduler
@ PROJECT_MULTIDIM
project a ScheduleMultiDim over a subset of its variables
@ DELETE_MULTIDIM
remove from memory a multidimensional table stored in a ScheduleMultiDim
@ COMBINE_MULTIDIM
combine 2 ScheduleMultiDims
the base class for "low-level" operators used to schedule inferences