summaryrefslogtreecommitdiff
path: root/src/IOManager.cpp
blob: 75e130e5c6b14cb9b15fd48c2d5ed8a35a4b96a2 (plain)
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
35
36
37
38
39
#include "IOManager.hpp"
#include "inputManager.hpp"
#include "log.hpp"
#include <mutex>

CIOManager::CIOManager() {
	log(LOG, "IOManager: initialized");
}

CIOManager::~CIOManager() {
	{
		std::lock_guard<std::mutex> lock(m_mutex);
		m_vIO.clear();
	}
	log(SYS, "IOManager: bye");
}

const std::vector<CIOManager::SIO> &CIOManager::getIO() const {
	std::lock_guard<std::mutex> lock(m_mutex);
	return m_vIO;
}

void CIOManager::addLog(const SLog &log) {
	m_vIO.push_back({.log = log});
	if (g_pInputManager)
		g_pInputManager->updateIO();
}

void CIOManager::addMessage(const CChatManager::SMessage &msg) {
	m_vIO.push_back({.msg = msg});
	if (g_pInputManager)
		g_pInputManager->updateIO();
}

void CIOManager::addCustom(const std::pair<std::string, std::string> &custom) {
	m_vIO.push_back({.custom = custom});
	if (g_pInputManager)
		g_pInputManager->updateIO();
}