aboutsummaryrefslogtreecommitdiff
path: root/server/src/util/io.cpp
diff options
context:
space:
mode:
authoralpine <[email protected]>2020-06-04 16:13:19 +0200
committeralpine <[email protected]>2020-06-04 16:13:19 +0200
commit28f66dee8a9fe49aadb5c1d67de48d9232363963 (patch)
tree00f6bfd0c2120d005c833301830d167b0753feb3 /server/src/util/io.cpp
downloadloader-28f66dee8a9fe49aadb5c1d67de48d9232363963.tar.xz
loader-28f66dee8a9fe49aadb5c1d67de48d9232363963.zip
Initial commit
Diffstat (limited to 'server/src/util/io.cpp')
-rw-r--r--server/src/util/io.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/server/src/util/io.cpp b/server/src/util/io.cpp
new file mode 100644
index 0000000..1f9bca6
--- /dev/null
+++ b/server/src/util/io.cpp
@@ -0,0 +1,41 @@
+#include "../include.h"
+#include "io.h"
+
+std::shared_ptr<spdlog::logger> io::logger;
+
+void io::init(const bool &trunc) {
+ auto sink =
+ std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
+ sink->set_pattern("[%R][%^%l%$] %v");
+
+ auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("server.log", trunc);
+
+ std::vector<spdlog::sink_ptr> log_sinks;
+ log_sinks.emplace_back(sink);
+ log_sinks.emplace_back(file_sink);
+
+ logger = std::make_shared<spdlog::logger>("server", log_sinks.begin(), log_sinks.end());
+ spdlog::register_logger(logger);
+
+ spdlog::flush_every(std::chrono::seconds(1));
+}
+
+void io::read_file(const std::string_view name, std::vector<char> &out) {
+ std::ifstream file(name.data());
+ if (!file.good()) {
+ io::logger->error("failed to load {}.", name.data());
+ return;
+ }
+
+ file.unsetf(std::ios::skipws);
+
+ file.seekg(0, std::ios::end);
+ const size_t size = file.tellg();
+ file.seekg(0, std::ios::beg);
+
+ out.resize(size);
+
+ file.read(out.data(), size);
+
+ file.close();
+}