EEROS  1.0.0.0
API for the EEROS Real-Time Robotics Framework
Sequencer.hpp
Go to the documentation of this file.
1 #ifndef ORG_EEROS_SEQUENCER_SEQUENCER_HPP_
2 #define ORG_EEROS_SEQUENCER_SEQUENCER_HPP_
3 
5 #include <vector>
6 #include <atomic>
7 #include <memory>
8 
9 namespace eeros {
10  namespace sequencer {
11 
12  class Sequence;
13  class SequencerUI;
14 
15  class Sequencer {
16  friend class BaseSequence;
17  friend class SequencerUI;
18 
19  Sequencer();
20  public:
21  virtual ~Sequencer();
22  static Sequencer& instance();
23 
24  void addSequence(Sequence& seq);
25  Sequence* getSequenceById(int id);
26  Sequence* getSequenceByName(std::string name);
27  std::vector<Sequence*> getListOfAllSequences();
31  void wait();
32  void abort();
33  void singleStepping();
34  static bool running;
35  private:
36  void step();
37  void restart();
38  Sequence* mainSequence;
39  std::vector<Sequence*> sequenceList; // list of all sequences
41  unsigned int id;
42  bool stepping;
43  bool nextStep;
44  SequencerUI* ui;
45  };
46  }; //namespace sequencer
47 }; // namespace eeros
48 
49 #endif // ORG_EEROS_SEQUENCER_SEQUENCER_HPP_
Definition: Sequence.hpp:13
static Sequencer & instance()
Definition: Sequencer.cpp:17
Definition: Logger.hpp:15
void addSequence(Sequence &seq)
Definition: Sequencer.cpp:22
void wait()
Definition: Sequencer.cpp:59
static bool running
Definition: Sequencer.hpp:34
Sequence * getSequenceById(int id)
Definition: Sequencer.cpp:26
virtual ~Sequencer()
Definition: Sequencer.cpp:15
Definition: Config.hpp:14
Definition: Sequencer.hpp:15
Definition: SequencerUI.hpp:13
void singleStepping()
Definition: Sequencer.cpp:46
std::vector< Sequence * > getListOfAllSequences()
Definition: Sequencer.cpp:42
Definition: BaseSequence.hpp:27
Sequence * getSequenceByName(std::string name)
Definition: Sequencer.cpp:34
void abort()
Definition: Sequencer.cpp:67