00001
00002 #ifndef GAUDIKERNEL_IMESSAGESVC_H
00003 #define GAUDIKERNEL_IMESSAGESVC_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include <iostream>
00008 #include <string>
00009
00010
00011 class StatusCode;
00012 class Message;
00013
00014
00015 static const InterfaceID IID_IMessageSvc(30, 1 , 0);
00016
00018 namespace MSG {
00019 enum Level {
00020 NIL = 0,
00021 VERBOSE,
00022 DEBUG,
00023 INFO,
00024 WARNING,
00025 ERROR,
00026 FATAL,
00027 NUM_LEVELS
00028 };
00029 };
00030
00039 class IMessageSvc : virtual public IInterface {
00040 public:
00041
00043 static const InterfaceID& interfaceID() { return IID_IMessageSvc; }
00044
00048 virtual void reportMessage( const Message& message ) = 0;
00049
00055 virtual void reportMessage( const StatusCode& code,
00056 const std::string& source = "" ) = 0;
00057
00063 virtual void reportMessage( const std::string& source,
00064 int type,
00065 const std::string& message ) = 0;
00066
00073 virtual void reportMessage( const char* source,
00074 int type,
00075 const char* message = "" ) = 0;
00076
00081 virtual void insertMessage( const StatusCode& code,
00082 const Message& message ) = 0;
00083
00085 virtual void eraseMessage() = 0;
00086
00088 virtual void eraseMessage( const StatusCode& code ) = 0;
00089
00094 virtual void eraseMessage( const StatusCode& code,
00095 const Message& message ) = 0;
00096
00102 virtual void insertStream( int type,
00103 const std::string& name,
00104 std::ostream* stream ) = 0;
00105
00107 virtual void eraseStream() = 0;
00108
00110 virtual void eraseStream( int message_type ) = 0;
00111
00116 virtual void eraseStream( int type,
00117 std::ostream* stream ) = 0;
00118
00122 virtual void eraseStream( std::ostream* stream ) = 0;
00123
00125 virtual std::ostream* defaultStream() const = 0;
00126
00130 virtual void setDefaultStream( std::ostream* stream ) = 0;
00131
00133 virtual int outputLevel() const = 0;
00134
00138 virtual int outputLevel( const std::string& source ) const = 0;
00139
00141 virtual void setOutputLevel( int new_level ) = 0;
00142
00147 virtual void setOutputLevel( const std::string& source,
00148 int new_level) = 0;
00149 };
00150
00151 #endif // GAUDIKERNEL_IMESSAGESVC_H