TimerLog.hpp
Go to the documentation of this file.
1/*
2 Copyright 2014 Statoil ASA.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 */
19#ifndef OPM_TIMERLOG_HPP
20#define OPM_TIMERLOG_HPP
21
22#include <time.h>
23
24#include <memory>
25#include <sstream>
26#include <string>
27
29
30/*
31 This class is a simple demonstration of how the logging framework
32 can be used to create a simple very special case logging facility.
33*/
34
35namespace Opm {
36
37class TimerLog : public StreamLog {
38public:
39 static const int64_t StartTimer = 4096;
40 static const int64_t StopTimer = 8192;
41
42 explicit TimerLog(const std::string& logFile);
43 explicit TimerLog(std::ostream& os);
44
45 void clear();
47
48protected:
49 void addMessageUnconditionally(int64_t messageFlag,
50 const std::string& message) override;
51private:
52 clock_t m_start;
53 std::ostringstream m_work;
54};
55
56typedef std::shared_ptr<TimerLog> TimerLogPtr;
57typedef std::shared_ptr<const TimerLog> TimerLogConstPtr;
58} // namespace Opm
59
60#endif
61
const char *const string
Definition: cJSON.h:170
Definition: StreamLog.hpp:31
Definition: TimerLog.hpp:37
~TimerLog()
Definition: TimerLog.hpp:46
void addMessageUnconditionally(int64_t messageFlag, const std::string &message) override
TimerLog(const std::string &logFile)
static const int64_t StopTimer
Definition: TimerLog.hpp:40
static const int64_t StartTimer
Definition: TimerLog.hpp:39
TimerLog(std::ostream &os)
Definition: A.hpp:4
std::shared_ptr< const TimerLog > TimerLogConstPtr
Definition: TimerLog.hpp:57
std::shared_ptr< TimerLog > TimerLogPtr
Definition: TimerLog.hpp:56