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