1 #ifndef _ots_VStateMachine_h_
2 #define _ots_VStateMachine_h_
8 class CoreSupervisorBase;
15 , subIterationIndex_(0)
16 , iterationWorkFlag_(
false)
17 , subIterationWorkFlag_(
false)
26 virtual void halt(
void) = 0;
27 virtual void pause(
void) = 0;
28 virtual void resume(
void) = 0;
29 virtual void start(std::string runNumber) = 0;
30 virtual void stop(
void) = 0;
33 virtual bool running(
void) {
return false; }
34 virtual void paused(
void) { ; }
35 virtual void halted(
void) { ; }
36 virtual void configured(
void) { ; }
37 virtual void initial(
void) { ; }
38 virtual void inError(
void) { ; }
46 std::string progress =
"";
48 if(VStateMachine::getSubIterationWork())
51 progress += name_ +
":";
54 if(iterationAliasMap_.find(transitionName_) != iterationAliasMap_.end() &&
55 iterationAliasMap_.at(transitionName_)
56 .find(VStateMachine::getIterationIndex()) !=
57 iterationAliasMap_.at(transitionName_).end())
58 progress += iterationAliasMap_.at(transitionName_)
59 .at(VStateMachine::getIterationIndex());
62 std::to_string(VStateMachine::getIterationIndex());
67 if(subIterationAliasMap_.find(transitionName_) !=
68 subIterationAliasMap_.end() &&
69 subIterationAliasMap_.at(transitionName_)
70 .find(VStateMachine::getSubIterationIndex()) !=
71 subIterationAliasMap_.at(transitionName_).end())
72 progress += subIterationAliasMap_.at(transitionName_)
73 .at(VStateMachine::getSubIterationIndex());
76 std::to_string(VStateMachine::getSubIterationIndex());
78 else if(VStateMachine::getIterationWork())
81 progress += name_ +
":";
84 if(iterationAliasMap_.find(transitionName_) != iterationAliasMap_.end() &&
85 iterationAliasMap_.at(transitionName_)
86 .find(VStateMachine::getIterationIndex()) !=
87 iterationAliasMap_.at(transitionName_).end())
88 progress += iterationAliasMap_.at(transitionName_)
89 .at(VStateMachine::getIterationIndex());
92 std::to_string(VStateMachine::getIterationIndex());
94 else if(transitionName_ !=
"")
95 progress += name_ +
":" + transitionName_;
104 void setTransitionName(
const std::string& transitionName)
106 transitionName_ = transitionName;
108 const std::string& getTransitionName(
void) {
return transitionName_; }
109 void setIterationIndex(
unsigned int i) { iterationIndex_ = i; }
110 void setSubIterationIndex(
unsigned int i) { subIterationIndex_ = i; }
111 unsigned int getIterationIndex(
void) {
return iterationIndex_; }
112 unsigned int getSubIterationIndex(
void) {
return subIterationIndex_; }
113 void indicateIterationWork(
void) { iterationWorkFlag_ =
true; }
114 void clearIterationWork(
void) { iterationWorkFlag_ =
false; }
115 bool getIterationWork(
void) {
return iterationWorkFlag_; }
116 void indicateSubIterationWork(
void) { subIterationWorkFlag_ =
true; }
117 void clearSubIterationWork(
void) { subIterationWorkFlag_ =
false; }
118 bool getSubIterationWork(
void) {
return subIterationWorkFlag_; }
123 std::map<std::string ,
124 std::map<
unsigned int , std::string >>
126 std::map<std::string ,
127 std::map<
unsigned int , std::string >>
128 subIterationAliasMap_;
131 unsigned int iterationIndex_, subIterationIndex_;
132 bool iterationWorkFlag_, subIterationWorkFlag_;
133 const std::string name_;
134 std::string transitionName_;
virtual std::string getStatusProgressDetail(void)
Status.
virtual bool running(void)
States.
CoreSupervisorBase * parentSupervisor_
virtual void configure(void)=0
Transitions.