summaryrefslogtreecommitdiff
path: root/src/components/include/utils/callable.h
blob: aff91814bf9024e6849312e42d364afc7ac3cbe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef SRC_COMPONENTS_INCLUDE_UTILS_CALLABLE_H
#define SRC_COMPONENTS_INCLUDE_UTILS_CALLABLE_H

#include "utils/macro.h"

namespace utils {
/**
 * @brief The Callable class allows
 *  to create functor to call in other context
 */
class Callable {
 public:
  virtual void operator()() const = 0;
  virtual ~Callable() {}
};

/**
 * @brief The CallNothing class functior that to nothing
 */
class CallNothing : public Callable {
  // Callable interface
 public:
  void operator()() const OVERRIDE {}
};
}  // namespace utils
#endif  // SRC_COMPONENTS_INCLUDE_UTILS_CALLABLE_H