* @param delta Amount to remove from the remaining time */
void update_remains(double delta);
+ virtual void update_remains_lazy(double now) = 0;
+
/** @brief Set the remaining time of the current action */
void set_remains(double value) { remains_ = value; }
/** @brief Unref that action (and destroy it if refcount reaches 0)
* @return true if the action was destroyed and false if someone still has references on it
*/
- virtual int unref();
+ int unref();
/** @brief Cancel the current Action if running */
virtual void cancel();
protected:
StateSet* state_set_;
- int refcount_ = 1;
private:
+ int refcount_ = 1;
double sharing_priority_ = 1.0; /**< priority (1.0 by default) */
double max_duration_ = NO_MAX_DURATION; /*< max_duration (may fluctuate until the task is completed) */
double remains_; /**< How much of that cost remains to be done in the currently running task */
boost::optional<heap_type::handle_type> heap_handle_ = boost::none;
public:
- virtual void updateRemainingLazy(double now) = 0;
void heapInsert(heap_type& heap, double key, Action::Type hat);
void heapRemove(heap_type& heap);
void heapUpdate(heap_type& heap, double key, Action::Type hat);