Class Task
Defined in File Task.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public rmf_task::Task
Class Documentation
-
class Task : public rmf_task::Task
Public Types
-
using DescriptionPtr = std::shared_ptr<Description>
-
using ConstDescriptionPtr = std::shared_ptr<const Description>
-
using TaskFinished = std::function<void()>
Public Static Functions
-
static rmf_task::Activator::Activate<Description> make_activator(Phase::ConstActivatorPtr phase_activator, std::function<rmf_traffic::Time()> clock)
Make an activator for a phase sequence task. This activator can be given to the rmf_task::Activator class to activate phase sequence tasks from phase sequence descriptions.
- Parameters:
phase_activator – [in] A phase activator. It is recommended to fully initialize this phase activator (add all supported phases) before passing it to this function. The task activator will keep a reference to this phase activator, so modifying it while a task is activating a phase could cause data races and therefore undefined behavior.
clock – [in] A callback that gives the current time when called.
-
static void add(rmf_task::Activator &activator, Phase::ConstActivatorPtr phase_activator, std::function<rmf_traffic::Time()> clock)
Add this task type to an Activator. This is an alternative to using make_activator(~).
- Parameters:
activator – [in] The task activator to add this task type to.
phase_activator – [in] A phase activator. It is recommended to fully initialize this phase activator (add all supported phases) before passing it to this function. The task activator will keep a reference to this phase activator, so modifying it while a task is activating a phase could cause data races and therefore undefined behavior.
clock – [in] A callback that gives the current time when called.
-
template<typename OtherDesc>
static void unfold(std::function<Description(const OtherDesc&)> unfold_description, rmf_task::Activator &activator, Phase::ConstActivatorPtr phase_activator, std::function<rmf_traffic::Time()> clock) Give an initializer the ability to build a sequence task for some other task description.
This is useful when the described task is best implemented as a sequence of phases.
- Parameters:
unfold_description – [in] This will be used to unfold the other description into a task sequence Description.
activator – [in] This activator will be given the ability to unfold and activate the OtherDesc type.
phase_activator – [in] This phase activator will be used to activate the task
clock – [in] A callback that gives the current time when called
-
class Builder
Public Functions
-
Builder()
Get the builder ready.
-
Builder &add_phase(Phase::ConstDescriptionPtr description, std::vector<Phase::ConstDescriptionPtr> cancellation_sequence)
Add a phase to the sequence.
- Parameters:
description – [in] A description of the phase
cancellation_sequence – [in] This phase sequence will be run if the task is cancelled during this phase.
-
std::shared_ptr<Description> build(std::string category, std::string detail)
Generate a TaskDescription instance from the phases that have been given to the builder.
- Parameters:
category – [in] Task category information that will go into the Task::Tag
detail – [in] Any detailed information that will go into the Task::Tag
-
Builder()
-
class Description : public rmf_task::Task::Description
Public Functions
-
Task::ConstModelPtr make_model(rmf_traffic::Time earliest_start_time, const Parameters ¶meters) const final
-
Info generate_info(const State &initial_state, const Parameters ¶meters) const final
-
const std::string &category() const
Get the category for this task.
-
Description &category(std::string new_category)
Change the category for this task.
-
const std::string &detail() const
Get the details for this task.
-
Description &detail(std::string new_detail)
Change the details for this task.
-
Header generate_header(const State &initial_state, const Parameters ¶meters) const
-
Task::ConstModelPtr make_model(rmf_traffic::Time earliest_start_time, const Parameters ¶meters) const final
-
using DescriptionPtr = std::shared_ptr<Description>