Command  0.3
callable.h
1#ifndef __COMMAND_CALLABLE_H
2#define __COMMAND_CALLABLE_H
3
4#include <string>
5#include <functional>
6
7namespace command {
11 template<typename ParameterType>
12 class Callable {
13 protected:
17 std::function<void(ParameterType)> func;
18
19 public:
25 Callable(std::function<void(ParameterType)> function)
26 : func(function) {
27 }
28
29 virtual ~Callable() { }
30
31 protected:
37 void call(ParameterType value) {
38 this->func(value);
39 }
40 };
41
46 template<>
47 class Callable<void> {
48 protected:
52 std::function<void(void)> func;
53
54 public:
60 Callable(std::function<void(void)> function)
61 : func(function) {
62 }
63
64 virtual ~Callable() { }
65
66 protected:
70 void call() {
71 this->func();
72 }
73 };
74}
75
76#endif /* __COMMAND_DESCRIPTIVE_H */
std::function< void(void)> func
Definition: callable.h:52
void call()
Definition: callable.h:70
Callable(std::function< void(void)> function)
Definition: callable.h:60
Definition: callable.h:12
std::function< void(ParameterType)> func
Definition: callable.h:17
void call(ParameterType value)
Definition: callable.h:37
Callable(std::function< void(ParameterType)> function)
Definition: callable.h:25