00001 /*************************************************************************** 00002 * 00003 * Copyright (C) 2009-2011 Cassio Neri Moreira 00004 * 00005 * This file is part of the KeyValue library. 00006 * 00007 * The KeyValue library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU General Public License as published 00009 * by the Free Software Foundation, either version 3 of the License, or (at 00010 * your option) any later version. 00011 * 00012 * The KeyValue library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 00015 * Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License along 00018 * with KeyValue. If not, see <http://www.gnu.org/licenses/>. 00019 * 00020 * If you modify this library, or any covered work, by linking or combining 00021 * it with Excel (or a modified version of that program), containing parts 00022 * covered by the terms of End-User License Agreement for Microsoft 00023 * Software, the licensors of KeyValue grant you additional permission to 00024 * convey the resulting work. 00025 * 00026 **************************************************************************/ 00027 00035 #ifndef KEYVALUE_SYS_MESSAGEIMPL_H_ 00036 #define KEYVALUE_SYS_MESSAGEIMPL_H_ 00037 00038 #include <boost/static_assert.hpp> 00039 00040 #include "keyvalue/sys/message/Message.h" 00041 00042 namespace keyvalue { 00043 00066 template <unsigned int id> 00067 class MessageImpl : public Message { 00068 00069 public: 00070 00071 MessageImpl() : Message(0) { 00080 BOOST_STATIC_ASSERT(id < 2); 00081 } 00082 00083 explicit 00084 MessageImpl(unsigned int level); 00085 00091 const string& 00092 getPrefix() const; 00093 00099 logger::Colour 00100 getColour() const; 00101 00102 private: 00103 00104 // Non assignable. 00105 Message& 00106 operator=(const MessageImpl& orig); 00107 00108 }; // class MessageImpl 00109 00119 typedef MessageImpl<0> Error; 00120 00130 typedef MessageImpl<1> Logic; 00131 00141 typedef MessageImpl<2> Info; 00142 00152 typedef MessageImpl<3> Warning; 00153 00163 typedef MessageImpl<4> Report; 00164 00174 typedef MessageImpl<5> Debug; 00175 00176 } // namespace keyvalue 00177 00178 #endif // KEYVALUE_SYS_MESSAGEIMPL_H_