Aikido
ExecutorMultiplexer.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_COMMON_EXECUTORMULTIPLEXER_HPP_
2 #define AIKIDO_COMMON_EXECUTORMULTIPLEXER_HPP_
3 
4 #include <functional>
5 #include <mutex>
6 #include <vector>
7 
8 namespace aikido {
9 namespace common {
10 
18 {
19 public:
21  ExecutorMultiplexer() = default;
22 
24  ~ExecutorMultiplexer() = default;
25 
33  void addCallback(std::function<void()> callback);
34 
36  void removeAllCallbacks();
37 
39  bool isEmpty() const;
40 
42  std::size_t getNumCallbacks() const;
43 
45  void operator()();
46 
47 private:
50  mutable std::mutex mMutex;
51 
53  std::vector<std::function<void()>> mCallbacks;
54 };
55 
56 } // namespace common
57 } // namespace aikido
58 
59 #endif // AIKIDO_COMMON_EXECUTORMULTIPLEXER_HPP_
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::common::ExecutorMultiplexer::addCallback
void addCallback(std::function< void()> callback)
Adds a callback.
aikido::common::ExecutorMultiplexer
Combine multiple executors (i.e.
Definition: ExecutorMultiplexer.hpp:17
aikido::common::ExecutorMultiplexer::mCallbacks
std::vector< std::function< void()> > mCallbacks
Array of callbacks.
Definition: ExecutorMultiplexer.hpp:53
aikido::common::ExecutorMultiplexer::removeAllCallbacks
void removeAllCallbacks()
Removes all the added callbacks.
aikido::common::ExecutorMultiplexer::isEmpty
bool isEmpty() const
Returns true if no callback is added. Otherwise, returns false.
aikido::common::ExecutorMultiplexer::operator()
void operator()()
Executes all the added callbacked in order of they added.
aikido::common::ExecutorMultiplexer::getNumCallbacks
std::size_t getNumCallbacks() const
Returns the number of added callbacks.
aikido::common::ExecutorMultiplexer::~ExecutorMultiplexer
~ExecutorMultiplexer()=default
Default destructor.
aikido::common::ExecutorMultiplexer::ExecutorMultiplexer
ExecutorMultiplexer()=default
Default constructor.
aikido::common::ExecutorMultiplexer::mMutex
std::mutex mMutex
Mutex for the list of callbacks.
Definition: ExecutorMultiplexer.hpp:50