From 28f66dee8a9fe49aadb5c1d67de48d9232363963 Mon Sep 17 00:00:00 2001 From: alpine Date: Thu, 4 Jun 2020 16:13:19 +0200 Subject: Initial commit --- client/src/util/events.h | 24 ++++++++++++++++++++++++ client/src/util/io.cpp | 12 ++++++++++++ client/src/util/io.h | 7 +++++++ 3 files changed, 43 insertions(+) create mode 100644 client/src/util/events.h create mode 100644 client/src/util/io.cpp create mode 100644 client/src/util/io.h (limited to 'client/src/util') diff --git a/client/src/util/events.h b/client/src/util/events.h new file mode 100644 index 0000000..b8d7781 --- /dev/null +++ b/client/src/util/events.h @@ -0,0 +1,24 @@ +#pragma once + +template +class event { + using func_type = std::function; + + std::mutex event_lock; + std::list m_funcs; + + public: + void add(const func_type& func) { + std::lock_guard lock(event_lock); + + m_funcs.push_back(std::move(func)); + } + + void call(Args... params) { + std::lock_guard lock(event_lock); + + for (auto& func : m_funcs) { + if (func) func(std::forward(params)...); + } + } +}; \ No newline at end of file diff --git a/client/src/util/io.cpp b/client/src/util/io.cpp new file mode 100644 index 0000000..06d2b9a --- /dev/null +++ b/client/src/util/io.cpp @@ -0,0 +1,12 @@ +#include "../include.h" +#include "io.h" + +std::shared_ptr io::logger; + +void io::init() { + spdlog::sink_ptr sink = + std::make_shared(); + sink->set_pattern("%^~>%$ %v"); + + logger = std::make_shared("client", sink); +} diff --git a/client/src/util/io.h b/client/src/util/io.h new file mode 100644 index 0000000..8eae321 --- /dev/null +++ b/client/src/util/io.h @@ -0,0 +1,7 @@ +#pragma once + +namespace io { +extern std::shared_ptr logger; + +void init(); +}; // namespace io -- cgit v1.2.3