File indexing completed on 2024-04-06 12:12:46
0001 #ifndef FWCore_MessageService_ELoutput_h
0002 #define FWCore_MessageService_ELoutput_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "FWCore/MessageService/src/ELdestination.h"
0025
0026 #include "FWCore/MessageLogger/interface/ELextendedID.h"
0027
0028 #include <memory>
0029
0030 namespace edm {
0031
0032
0033
0034
0035
0036 class ErrorObj;
0037 namespace service {
0038
0039
0040
0041
0042
0043 class ELoutput : public ELdestination {
0044 public:
0045
0046
0047 ELoutput();
0048 ELoutput(std::ostream& os, bool emitAtStart = false);
0049 ELoutput(const std::string& fileName, bool emitAtStart = false);
0050 ELoutput(const ELoutput& orig);
0051 ELoutput& operator=(const ELoutput& orig) = delete;
0052 ~ELoutput() override;
0053
0054
0055
0056 public:
0057 bool log(const edm::ErrorObj& msg) override;
0058
0059 protected:
0060
0061
0062
0063 protected:
0064
0065
0066 protected:
0067 void emitToken(std::string_view s, bool nl = false);
0068
0069 void suppressTime() override;
0070 void includeTime() override;
0071 void suppressModule() override;
0072 void includeModule() override;
0073 void suppressSubroutine() override;
0074 void includeSubroutine() override;
0075 void suppressText() override;
0076 void includeText() override;
0077 void suppressContext() override;
0078 void includeContext() override;
0079 void suppressSerial() override;
0080 void includeSerial() override;
0081 void useFullContext() override;
0082 void useContext() override;
0083 void separateTime() override;
0084 void attachTime() override;
0085 void separateEpilogue() override;
0086 void attachEpilogue() override;
0087
0088 void changeFile(std::ostream& os) override;
0089 void changeFile(const std::string& filename) override;
0090 void flush() override;
0091
0092 protected:
0093
0094
0095 std::shared_ptr<std::ostream> os;
0096 int charsOnLine;
0097 edm::ELextendedID xid;
0098
0099 bool wantTimestamp, wantModule, wantSubroutine, wantText, wantSomeContext, wantSerial, wantFullContext,
0100 wantTimeSeparate, wantEpilogueSeparate, preambleMode;
0101
0102
0103
0104
0105 };
0106
0107
0108
0109 }
0110 }
0111
0112 #endif