diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-11-16 16:27:47 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-11-16 16:27:47 +0000 |
commit | 82a3db85138c91df397fd820a3b5d1a0b5c21ef9 (patch) | |
tree | 6c6435962594df18eb2b6ed1d07740aecd0778ff /yage/util/active.h | |
parent | 443ae47fc210bcfe10f6f6c5ac8aa3453e1d29d2 (diff) | |
download | YAGE-82a3db85138c91df397fd820a3b5d1a0b5c21ef9.tar.gz YAGE-82a3db85138c91df397fd820a3b5d1a0b5c21ef9.zip |
Asynchronous logging added
Diffstat (limited to 'yage/util/active.h')
-rw-r--r-- | yage/util/active.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/yage/util/active.h b/yage/util/active.h index 877ab75e..ca8d30ad 100644 --- a/yage/util/active.h +++ b/yage/util/active.h @@ -1,11 +1,38 @@ #ifndef YAGE_UTIL_ACTIVE_H #define YAGE_UTIL_ACTIVE_H +#include "syncqueue.h" + +#include <functional> +#include <memory> +#include <thread> + +namespace yage +{ + class Active { public: + typedef std::function<void()> Callback; + + Active(const Active &) = delete; + Active &operator=(const Active &) = delete; + + ~Active(); + + static std::unique_ptr<Active> create(); + + void send(Callback message); + +private: Active(); - virtual ~Active(); + void run(); + + bool running_; + SyncQueue<Callback> queue_; + std::thread thread_; }; +} // namespace yage + #endif |