BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
TError.h
Go to the documentation of this file.
1 #ifndef BA_TERROR_H
2 #define BA_TERROR_H
3 
4 #include "RtypesCore.h"
5 #include <utility>
6 #include <sstream>
7 #include <iostream>
8 #include <cassert>
9 
10 const Int_t kUnset = -1;
11 const Int_t kPrint = 0;
12 const Int_t kInfo = 1000;
13 const Int_t kWarning = 2000;
14 const Int_t kError = 3000;
15 const Int_t kBreak = 4000;
16 const Int_t kSysError = 5000;
17 const Int_t kFatal = 6000;
18 
19 inline void insert_messages(std::stringstream& ss)
20 {
21  (void)ss;
22 }
23 
24 template <typename T, typename... Types>
25 void insert_messages(std::stringstream& ss, T var1, Types... var2)
26 {
27  ss << var1;
28  insert_messages(ss, var2...);
29 }
30 
31 template<typename... Args>
32 void logHelperMessage(std::string severity, Args&&... args) {
33  std::stringstream ss;
34  insert_messages(ss, std::forward<Args>(args)...);
35  std::cout << severity << " " << ss.str() << std::endl;
36 }
37 
38 
39 template<typename... Ts>
40 void Info(Ts&&... args)
41 {
42  logHelperMessage("Info", std::forward<Ts>(args)...);
43 }
44 
45 template<typename... Ts>
46 void Error(Ts&&... args)
47 {
48  logHelperMessage("Error", std::forward<Ts>(args)...);
49 }
50 
51 template<typename... Ts>
52 void Warning(Ts&&... args)
53 {
54  logHelperMessage("Warning", std::forward<Ts>(args)...);
55 }
56 
57 #endif
int Int_t
Definition: RtypesCore.h:41
void insert_messages(std::stringstream &ss)
Definition: TError.h:19
void Warning(Ts &&... args)
Definition: TError.h:52
const Int_t kPrint
Definition: TError.h:11
const Int_t kError
Definition: TError.h:14
const Int_t kSysError
Definition: TError.h:16
const Int_t kUnset
Definition: TError.h:10
const Int_t kFatal
Definition: TError.h:17
void Error(Ts &&... args)
Definition: TError.h:46
void logHelperMessage(std::string severity, Args &&... args)
Definition: TError.h:32
const Int_t kBreak
Definition: TError.h:15
const Int_t kWarning
Definition: TError.h:13
void Info(Ts &&... args)
Definition: TError.h:40
const Int_t kInfo
Definition: TError.h:12