Belle II Software  release-08-01-10
LogConnectionFilter.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/logging/LogConnectionBase.h>
12 #include <framework/logging/LogMessage.h>
13 
14 #include <memory>
15 
16 namespace Belle2 {
28  class LogConnectionFilter final : public LogConnectionBase {
29 
30  public:
31 
37  explicit LogConnectionFilter(LogConnectionBase* logConnection);
38 
42  virtual ~LogConnectionFilter();
43 
50  bool sendMessage(const LogMessage& message) override;
51 
57  bool isConnected() override;
58 
62  void finalizeOnAbort() override
63  {
65  m_logConnection->finalizeOnAbort();
66  }
67 
68  private:
70  void printRepetitions();
71 
72  std::unique_ptr<LogConnectionBase> m_logConnection;
75  };
76 
78 } // end namespace Belle2
Abstract base class for the different types of log connections.
Implements a log connection that filters repeated messages.
std::unique_ptr< LogConnectionBase > m_logConnection
The actual log connection.
void printRepetitions()
If there are repeated messages print the number of repetitions.
int m_repeatCounter
Counter for repeated messages.
virtual ~LogConnectionFilter()
The LogConnectionFilter destructor.
LogConnectionFilter(LogConnectionBase *logConnection)
The constructor.
LogMessage m_previousMessage
The previous log message.
bool isConnected() override
Returns true if the log connection could be established.
bool sendMessage(const LogMessage &message) override
Sends a log message.
void finalizeOnAbort() override
Finalize on Abort: make sure last repetition is printed if there is any and that connected connection...
The LogMessage class.
Definition: LogMessage.h:29
Abstract base class for different kinds of events.