AnCH Framework 0.1
Another C++ Hack Framework
Loading...
Searching...
No Matches
lowPriorityWriter.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2012 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include <iostream>
23#include <queue>
24#include <mutex>
25#include <thread>
26
27#include "logger/writer.hpp"
28
29
30namespace anch {
31 namespace logger {
32
39 class LowPriorityWriter: public Writer {
40
41 // Attributes +
42 private:
44 std::queue<std::string> _messages;
45
47 bool _running;
48
50 std::thread* _thread;
51
53 std::mutex _mutex;
54 // Attributes -
55
56 public:
57 // Constructors +
66 LowPriorityWriter(const std::string& fileName,
67 const std::string& linePattern,
68 unsigned int maxSize = 0,
69 int maxIndex = 0);
70
77 LowPriorityWriter(std::ostream* output, const std::string& linePattern);
78 // Constructors -
79
80 // Destructor +
85 // Destructor -
86
87
88 // Method +
89 public:
97 virtual void write(const std::string& category,
98 const anch::logger::Level& level,
99 const std::string& message);
100
105
106 private:
110 void process();
111 // Method -
112
113 };
114
115 }
116}
LowPriorityWriter(std::ostream *output, const std::string &linePattern)
virtual void write(const std::string &category, const anch::logger::Level &level, const std::string &message)
LowPriorityWriter(const std::string &fileName, const std::string &linePattern, unsigned int maxSize=0, int maxIndex=0)
Writer(const std::string &fileName, const std::string &linePattern, unsigned int maxSize=0, int maxIndex=0)
Logger namespace.
Definition anchDateFormatter.hpp:27
Level
Definition levels.hpp:32
AnCH framework base namespace.
Definition app.hpp:28