00001 /* 00002 * lib/message/handler.h 00003 * 00004 * Message handling "system" for errors, warnings and verbose messages. 00005 * Header for message handler class. 00006 * 00007 * Copyright (c) 2004 by Wolfgang Wieser ] wwieser (a) gmx <*> de [ 00008 * 00009 * This file may be distributed and/or modified under the terms of the 00010 * GNU General Public License version 2 as published by the Free Software 00011 * Foundation. (See COPYING.GPL for details.) 00012 * 00013 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00014 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00015 * 00016 */ 00017 00018 #ifndef _LIB_MESSAGE_HANDLER_H_ 00019 #define _LIB_MESSAGE_HANDLER_H_ 1 00020 00032 #include <lib/sconfig.h> /* MUST be first */ 00033 00034 #include <lib/tl/linkedlist.h> 00035 00036 #include <lib/message/message.h> 00037 00038 00039 // See manager.h. 00040 class MessageManager; 00041 00042 00058 class MessageHandler : LinkedListBase<MessageHandler> 00059 { 00060 friend class MessageManager; 00061 friend class LinkedList<MessageHandler>; 00062 private: 00065 Message::Type mtmask; 00066 00067 protected: 00079 virtual void HandleMessage(const Message &m); 00080 00093 void SelectMessageTypes(Message::Type mask); 00094 00095 private: 00097 MessageHandler(const MessageHandler &); 00099 void operator=(const MessageHandler &); 00100 public: 00104 MessageHandler(); 00106 virtual ~MessageHandler(); 00107 }; 00108 00109 #endif /* _LIB_MESSAGE_HANDLER_H_ */