LCOV - code coverage report
Current view: top level - app/include/Log - ProgressLoggerTableOStream.hpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 4 5 80.0 %
Date: 2023-08-17 16:45:52 Functions: 3 4 75.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "Log/ProgressLogger.hpp"
       4             : 
       5             : namespace Log {
       6             : class ProgressLoggerTableOStream: public ProgressLogger {
       7             :     template<class T>
       8         142 :     ProgressLogger &send(const T &t) {
       9         142 :         if(s != TEXT)
      10           0 :             throw std::logic_error("Cannot send if state is not TEXT");
      11         142 :         os << t;
      12         142 :         return *this;
      13             :     }
      14             : 
      15             :    private:
      16             :     std::ostream &os;
      17             : 
      18             :     bool firstField = true;
      19             : 
      20             :     enum State {
      21             :         NO_MESSAGE,
      22             :         MESSAGE,
      23             :         TEXT
      24             :     };
      25             :     State s = NO_MESSAGE;
      26             : 
      27             :    public:
      28             :     ProgressLoggerTableOStream(std::ostream &os = std::cout);
      29             : 
      30             :     virtual ProgressLoggerTableOStream &operator<<(const Progress &progress);
      31             :     virtual ProgressLoggerTableOStream &operator<<(const Elapsed &elapsed);
      32             :     virtual ProgressLoggerTableOStream &operator<<(const ETA &eta);
      33             :     virtual ProgressLoggerTableOStream &operator<<(const StartText &);
      34             :     virtual ProgressLoggerTableOStream &operator<<(const EndText &);
      35             :     virtual ProgressLoggerTableOStream &operator<<(const StartMessage &);
      36             :     virtual ProgressLoggerTableOStream &operator<<(const EndMessage &);
      37             : 
      38             :     virtual ProgressLoggerTableOStream &operator<<(const int &t);
      39             :     virtual ProgressLoggerTableOStream &operator<<(const unsigned long &t);
      40             :     virtual ProgressLoggerTableOStream &operator<<(const double &t);
      41             :     virtual ProgressLoggerTableOStream &operator<<(const char *t);
      42             : 
      43             :     virtual ProgressLoggerTableOStream &operator<<(std::_Setprecision f);
      44             : 
      45             :     ProgressLogger &operator<<(ProgressLogger &(*pf)(ProgressLogger &));
      46             : 
      47             :    protected:
      48             :     virtual ProgressLoggerTableOStream &fixed();
      49             : };
      50             : 
      51             : }  // namespace Log

Generated by: LCOV version 1.14