2 Copyright (C) 2012 Intel Corporation
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27 #include "timestamp.h"
31 void debugOut(string message);
37 static const int Error;
38 static const int Warning;
40 DebugOut(int debugLevel = 4)
42 mDebugLevel = debugLevel;
44 if(mDebugLevel <= debugThreshhold || mDebugLevel == Error || mDebugLevel == Warning)
48 out<<bufferTime(amb::currentTime())<<" | ";
50 if(mDebugLevel == Error)
52 if(mDebugLevel == Warning)
56 DebugOut const& operator << (string message) const
58 if(mDebugLevel <= debugThreshhold || mDebugLevel == Error || mDebugLevel == Warning)
67 DebugOut const& operator << (ostream & (*manip)(std::ostream&)) const
71 if(mDebugLevel <= debugThreshhold || mDebugLevel == Error || mDebugLevel == Warning)
77 if((mDebugLevel == Error && throwErr))
79 throw std::runtime_error("Abort on Error is set");
81 else if ((mDebugLevel == Warning && throwWarn))
83 throw std::runtime_error("Abort on Warning is set");
89 DebugOut const & operator << (double val) const
91 if(mDebugLevel <= debugThreshhold || mDebugLevel == Error || mDebugLevel == Warning)
100 static void setDebugThreshhold(int th)
102 debugThreshhold = th;
105 static void setOutput(ostream &o)
110 static void setThrowWarn(bool v)
115 static void setThrowErr(bool v)
122 std::string bufferTime(double time)
130 while(f.str().length() <= 15)
138 static int debugThreshhold;
139 static std::streambuf *buf;
140 static bool throwWarn;
141 static bool throwErr;