Kurlyk
Toggle main menu visibility
Loading...
Searching...
No Matches
print_utils.hpp
Go to the documentation of this file.
1
#pragma once
2
#ifndef KURLYK_HEADER_KURLYK_UTILS_PRINT_UTILS_HPP_INCLUDED
3
#define KURLYK_HEADER_KURLYK_UTILS_PRINT_UTILS_HPP_INCLUDED
4
7
8
#define KURLYK_PRINT kurlyk::utils::ThreadSafePrintStream{}
9
10
namespace
kurlyk
{
11
namespace
utils {
12
14
class
ThreadSafePrintStream
:
public
std::ostringstream {
15
public
:
16
ThreadSafePrintStream
() =
default
;
17
18
~ThreadSafePrintStream
() {
19
get_instance
().
print
(this->str());
20
}
21
22
private
:
23
class
PrintStream
{
24
public
:
25
void
print
(
const
std::string &str) {
26
std::lock_guard<std::mutex> guard(
m_mutex_print
);
27
std::cout << str;
28
}
29
30
private
:
31
std::mutex
m_mutex_print
;
32
};
33
34
static
PrintStream
&
get_instance
() {
35
static
PrintStream
instance;
36
return
instance;
37
}
38
};
39
40
}
// namespace utils
41
}
// namespace kurlyk
42
43
#endif
// KURLYK_HEADER_KURLYK_UTILS_PRINT_UTILS_HPP_INCLUDED
kurlyk::utils::ThreadSafePrintStream::PrintStream
Definition
print_utils.hpp:23
kurlyk::utils::ThreadSafePrintStream::PrintStream::m_mutex_print
std::mutex m_mutex_print
Definition
print_utils.hpp:31
kurlyk::utils::ThreadSafePrintStream::PrintStream::print
void print(const std::string &str)
Definition
print_utils.hpp:25
kurlyk::utils::ThreadSafePrintStream::get_instance
static PrintStream & get_instance()
Definition
print_utils.hpp:34
kurlyk::utils::ThreadSafePrintStream::~ThreadSafePrintStream
~ThreadSafePrintStream()
Definition
print_utils.hpp:18
kurlyk::utils::ThreadSafePrintStream::ThreadSafePrintStream
ThreadSafePrintStream()=default
kurlyk
Primary namespace for the Kurlyk library, encompassing initialization, request management,...
include
kurlyk
utils
print_utils.hpp
Generated by
1.17.0