24 #ifndef SRC_TASKS_INCLUDE_CORBO_TASKS_TASK_INTERFACE_H_
25 #define SRC_TASKS_INCLUDE_CORBO_TASKS_TASK_INTERFACE_H_
31 #ifdef MESSAGE_SUPPORT
32 #include <corbo-communication/messages/tasks/tasks.pb.h>
63 using Ptr = std::shared_ptr<TaskInterface>;
75 virtual void performTask(Environment& environment, SignalTargetInterface* signal_target =
nullptr, std::string* msg =
nullptr,
76 const std::string& ns =
"") = 0;
92 virtual bool verify(
const Environment& environment, std::string* msg =
nullptr)
const = 0;
103 virtual void getAvailableSignals(
const Environment& environment, SignalTargetInterface& signal_target,
const std::string& ns =
"")
const {}
106 virtual void reset() = 0;
108 #ifdef MESSAGE_SUPPORT
109 virtual void toMessage(messages::Task& message)
const {}
112 virtual void fromMessage(
const messages::Task& message, std::stringstream* issues =
nullptr) {}
117 #define FACTORY_REGISTER_TASK(type) FACTORY_REGISTER_OBJECT(type, TaskInterface)
121 #endif // SRC_TASKS_INCLUDE_CORBO_TASKS_TASK_INTERFACE_H_