aboutsummaryrefslogtreecommitdiff
path: root/client/src/util/io.cpp
blob: f6048bad779d6064372b3e9880ac4ba11404473d (plain) (blame)
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
27
28
29
30
31
32
33
34
#include "../include.h"
#include "io.h"

std::shared_ptr<spdlog::logger> io::logger;

void io::init() {
	spdlog::sink_ptr sink =
		std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
	sink->set_pattern("%^~>%$ %v");

	logger = std::make_shared<spdlog::logger>("client", sink);
}

bool io::read_file(const std::string_view name, std::vector<char>& out) {
	std::ifstream file(name.data(), std::ios::binary);
	if (!file.good()) {
		io::logger->error("{} isnt valid.", name);
		return false;
	}

	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[0], size);

	file.close();

	return true;
}