Version: 9.16.0
YacsTrace.hxx
Go to the documentation of this file.
1// Copyright (C) 2006-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#pragma once
21
22#include "YACSBasesExport.hxx"
23#include "Exception.hxx"
24
25#include <iostream>
26#include <sstream>
27
28#ifdef _DEVDEBUG_
29#define DEBTRACE(msg) { std::cerr << std::flush << __FILE__ << " [" << __LINE__ << "] : " << msg << std::endl << std::flush; }
30#else
31#define DEBTRACE(msg)
32#endif
33
34namespace YACS
35{
37 void AppendTimeClock(std::ostream& os);
38}
39
41#define YACSTRACE(level,msg) { if(YACS::traceLevel >=level) \
42 { \
43 AppendTimeClock(std::cerr); \
44 std::cerr << __FILE__ << " [" << __LINE__ << "] : " << msg << std::endl; \
45 } }
46
47#define ERROR_YACSTRACE(msg) YACSTRACE(0,msg)
48
49#define WARNING_YACSTRACE(msg) YACSTRACE(1,msg)
50
51#define INFO_YACSTRACE(msg) YACSTRACE(2,msg)
52
53#define DEBUG_YACSTRACE(msg) YACSTRACE(7,msg)
54
55#define GURU_YACSTRACE(msg) YACSTRACE(99,msg)
56
58
59#define YASSERT(val) { if( !(val) ) { std::ostringstream mess; mess << __FILE__ << " [" <<__LINE__<< "] : assertion " << #val << " failed"; throw YACS::Exception(mess.str()); } }
60
61void AttachDebugger();
#define YACSBASES_EXPORT
void AttachDebugger()
Definition: YacsTrace.cxx:52
void AppendTimeClock(std::ostream &os)
Definition: YacsTrace.cxx:40
int traceLevel
Definition: YacsTrace.cxx:37