diff --git a/src/util/cout_message.h b/src/util/cout_message.h index 483708cb21f..2c53b576896 100644 --- a/src/util/cout_message.h +++ b/src/util/cout_message.h @@ -29,6 +29,14 @@ class cerr_message_handlert:public stream_message_handlert class console_message_handlert : public message_handlert { public: + void print(unsigned, const xmlt &) override + { + } + + void print(unsigned, const jsont &) override + { + } + // level 4 and upwards go to cout, level 1-3 to cerr virtual void print( unsigned level, @@ -57,6 +65,14 @@ class console_message_handlert : public message_handlert class gcc_message_handlert : public console_message_handlert { public: + void print(unsigned, const xmlt &) override + { + } + + void print(unsigned, const jsont &) override + { + } + // aims to imitate the messages gcc prints virtual void print( unsigned level, diff --git a/src/util/message.h b/src/util/message.h index 7daa5504586..752cd37eb86 100644 --- a/src/util/message.h +++ b/src/util/message.h @@ -30,25 +30,16 @@ class message_handlert virtual void print(unsigned level, const std::string &message)=0; - virtual void print(unsigned level, const xmlt &xml) - { - // no-op by default - } + virtual void print(unsigned level, const xmlt &xml) = 0; - virtual void print(unsigned level, const jsont &json) - { - // no-op by default - } + virtual void print(unsigned level, const jsont &json) = 0; virtual void print( unsigned level, const std::string &message, const source_locationt &location); - virtual void flush(unsigned level) - { - // no-op by default - } + virtual void flush(unsigned) = 0; virtual ~message_handlert() { @@ -80,18 +71,30 @@ class message_handlert class null_message_handlert:public message_handlert { public: - virtual void print(unsigned level, const std::string &message) + void print(unsigned level, const std::string &message) override { message_handlert::print(level, message); } - virtual void print( + void print(unsigned, const xmlt &) override + { + } + + void print(unsigned, const jsont &) override + { + } + + void print( unsigned level, const std::string &message, - const source_locationt &) + const source_locationt &) override { print(level, message); } + + void flush(unsigned) override + { + } }; class stream_message_handlert:public message_handlert @@ -101,7 +104,7 @@ class stream_message_handlert:public message_handlert { } - virtual void print(unsigned level, const std::string &message) + void print(unsigned level, const std::string &message) override { message_handlert::print(level, message); @@ -109,7 +112,15 @@ class stream_message_handlert:public message_handlert out << message << '\n'; } - virtual void flush(unsigned level) + void print(unsigned, const xmlt &) override + { + } + + void print(unsigned, const jsont &) override + { + } + + void flush(unsigned) override { out << std::flush; }