6 #ifndef CNOID_UTIL_TASK_H 7 #define CNOID_UTIL_TASK_H 9 #include <cnoid/Referenced> 10 #include <cnoid/Signal> 11 #include <boost/function.hpp> 12 #include <boost/bind.hpp> 19 class AbstractTaskSequencer;
25 virtual int currentPhaseIndex()
const = 0;
26 virtual bool isAutoMode()
const = 0;
27 virtual void breakSequence() = 0;
28 virtual void setNextCommand(
int commandIndex) = 0;
29 virtual void setNextPhase(
int phaseIndex) = 0;
30 virtual void setCommandLinkAutomatic() = 0;
31 virtual bool executeCommand(
int index) = 0;
32 virtual bool wait(
double sec) = 0;
33 virtual bool waitForCommandToFinish(
double timeout = 0.0) = 0;
34 virtual bool waitForCommandToFinish(
Connection connectionToDisconnect,
double timeout) = 0;
44 virtual void notifyCommandFinish(
bool isCompleted =
true) = 0;
48 typedef boost::function<void(TaskProc* proc)>
TaskFunc;
55 void setChecked(
bool on);
74 const std::string&
caption()
const {
return caption_; }
80 const std::string&
description()
const {
return description_; }
82 description_ = description;
return this; }
84 TaskFunc
function()
const {
return function_; }
94 bool isChecked()
const;
96 int nextPhaseIndex(
int currentPhaseIndex)
const;
101 int nextCommandIndex(
int currentCommandIndex)
const;
103 TaskCommand* setCommandLinkStep(
int commandIndexStep);
109 int level()
const {
return level_; }
112 std::string caption_;
113 std::string description_;
116 int nextCommandIndex_;
118 TaskToggleStatePtr toggleState_;
119 bool isNextPhaseRelative_;
120 bool isNextCommandRelative_;
121 bool isCommandLinkAutomatic_;
141 virtual TaskPhase* clone(
bool doDeepCopy =
true);
143 const std::string&
caption()
const {
return caption_; }
144 void setCaption(
const std::string&
str);
149 void setPreCommand(TaskFunc func);
153 TaskCommand* addCommand(
const std::string& caption);
155 TaskCommand* addToggleCommand(
const std::string& caption);
161 TaskPhaseProxyPtr commandLevel(
int level);
162 int maxCommandLevel()
const;
165 std::string caption_;
166 TaskFunc preCommand_;
167 std::vector<TaskCommandPtr> commands;
179 void setCommandLevel(
int level);
183 TaskCommand* addCommand(
const std::string& caption);
185 TaskCommand* addToggleCommand(
const std::string& caption);
200 virtual void addMenuItem(
const std::string& caption, boost::function<
void()> func) = 0;
201 virtual void addCheckMenuItem(
const std::string& caption,
bool isChecked, boost::function<
void(
bool on)> func) = 0;
202 virtual void addMenuSeparator() = 0;
210 Task(
const std::string& name,
const std::string& caption);
211 Task(
const Task& org,
bool doDeepCopy =
true);
214 const std::string&
name()
const {
return name_; }
215 void setName(
const std::string&
str);
216 const std::string&
caption()
const {
return caption_; }
217 void setCaption(
const std::string& str);
223 TaskPhase* addPhase(
const std::string& caption);
227 void setPreCommand(TaskFunc func);
229 TaskCommand* addCommand(
const std::string& caption);
231 TaskCommand* addToggleCommand(
const std::string& caption);
233 int lastCommandIndex();
234 TaskPhaseProxyPtr commandLevel(
int level);
235 int maxCommandLevel()
const;
237 TaskFunc funcToSetCommandLink(
int commandIndex)
const;
245 virtual void onMenuRequest(
TaskMenu& menu);
249 std::string caption_;
250 std::vector<TaskPhasePtr> phases_;
bool isChecked() const
Definition: Task.h:54
TaskCommand * setDescription(const std::string &description)
Definition: Task.h:81
connection_type connect(typename SignalType::slot_function_type f)
Definition: Signal.h:393
int lastCommandIndex() const
Definition: Task.h:158
const std::string & name() const
Definition: Task.h:214
Definition: ValueTree.h:224
bool waitForBooleanSignal(SignalProxy< Signature > signalProxy, double timeout=0.0)
Definition: Task.h:40
const std::string & description() const
Definition: Task.h:80
Definition: Referenced.h:67
TaskCommand * lastCommand() const
Definition: Task.h:159
TaskCommand * setCaption(const std::string &caption)
Definition: Task.h:75
bool isSkipped() const
Definition: Task.h:146
bool waitForSignal(SignalProxy< Signature > signalProxy, double timeout=0.0)
Definition: Task.h:36
boost::function< void(TaskProc *proc)> TaskFunc
Definition: Task.h:48
void setSkipped(bool on)
Definition: Task.h:147
const std::string & caption() const
Definition: Task.h:143
TaskCommand * setLevel(int level)
Definition: Task.h:108
TaskCommand * linkToNextPhase()
Definition: Task.h:99
TaskCommand * linkToNextCommand()
Definition: Task.h:104
ref_ptr< Task > TaskPtr
Definition: Task.h:253
bool isDefault() const
Definition: Task.h:88
TaskFunc preCommand() const
Definition: Task.h:150
const std::string & caption() const
Definition: Task.h:74
std::string str(const Vector3 &v)
Definition: EigenUtil.cpp:90
int numCommands() const
Definition: Task.h:156
Definition: AbstractTaskSequencer.h:14
ref_ptr< TaskPhase > TaskPhasePtr
Definition: Task.h:171
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
TaskCommand * setCommandLinkAutomatic(bool on=true)
Definition: Task.h:106
int numPhases() const
Definition: Task.h:219
TaskCommand * setFunction(TaskFunc func)
Definition: Task.h:85
const std::string & caption() const
Definition: Task.h:216
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
SignalProxy< void(bool on)> sigToggled()
Definition: Task.h:57
int level() const
Definition: Task.h:109
ref_ptr< TaskToggleState > TaskToggleStatePtr
Definition: Task.h:64
virtual void notifyCommandFinish(bool isCompleted=true)=0
int commandLevel() const
Definition: Task.h:180
bool isCommandLinkAutomatic() const
Definition: Task.h:105
TaskCommand * setDefault(bool on=true)
Definition: Task.h:87
ref_ptr< TaskCommand > TaskCommandPtr
Definition: Task.h:127
ref_ptr< TaskPhaseProxy > TaskPhaseProxyPtr
Definition: Task.h:130