31 #ifndef MESSAGETOOLS_H
32 #define MESSAGETOOLS_H
38 #include "ANSIColors.h"
40 #define __MODULE__ __PRETTY_FUNCTION__
43 #define FATAL(MSG, COLOR) \
45 std::stringstream msg_; \
46 std::stringstream PFs_; \
47 std::string PF_ = __MODULE__; \
48 int PFSize = PF_.size(); \
50 if(PFSize > __OFFSET__) \
52 PFSize = __OFFSET__; \
54 for(int i = 0; i < PFSize; ++i) \
58 if(PFSize < __OFFSET__) \
60 for(int i = 0; i < __OFFSET__ + 3 - PFSize; ++i) \
65 if(PFSize < (int)PF_.size()) \
68 PFs_ << ACRed << "..."; \
70 msg_ << ACCyan << ACBold << __LINE__ << ACPlain << ACYellow << "\t] [" << ACRed \
71 << ACBold << ACReverse << "FATAL:" << ACPlain << ACWhite << ACBold << " " \
72 << PFs_.str() << ACPlain << ACYellow << "]"; \
73 int blankSize = maxL - msg_.str().size() + 1; \
76 std::string blanks = ""; \
77 for(int i = 0; i < blankSize; ++i) \
81 std::cout << msg_.str() << blanks << COLOR << ACBold << MSG << ACPlain \
85 #define STDLINE(MSG, COLOR) \
87 std::stringstream msg_; \
88 std::stringstream PFs_; \
89 std::string PF_ = __MODULE__; \
90 int PFSize = PF_.size(); \
92 if(PFSize > __OFFSET__) \
94 PFSize = __OFFSET__; \
96 for(int i = 0; i < PFSize; ++i) \
100 if(PFSize < __OFFSET__) \
102 for(int i = 0; i < __OFFSET__ + 3 - PFSize; ++i) \
107 if(PFSize < (int)PF_.size()) \
110 PFs_ << ACRed << "..."; \
114 PFs_ << ACPlain << ACPlain << ACPlain << ACPlain; \
116 msg_ << ACCyan << ACBold << __LINE__ << ACPlain << ACYellow << "\t] [" \
117 << ACPlain << ACWhite << ACBold << PFs_.str() << ACPlain << ACYellow \
119 int msgS = msg_.str().size() + 1; \
120 if(msgS < __OFFSET__) \
122 int blankSize = maxL - msgS; \
125 std::string blanks = ""; \
126 for(int i = 0; i < blankSize; ++i) \
130 std::cout << msg_.str() << blanks << COLOR << ACBold << MSG << ACPlain \
134 #define STDSNAP(MSG, COLOR) \
136 std::stringstream msg_; \
137 std::stringstream PFs_; \
138 std::string PF_ = __MODULE__; \
139 int PFSize = PF_.size(); \
141 if(PFSize > __OFFSET__) \
143 PFSize = __OFFSET__; \
145 for(int i = 0; i < PFSize; ++i) \
149 if(PFSize <= __OFFSET__) \
151 for(int i = 0; i < __OFFSET__ + 3 - PFSize; ++i) \
156 if(PFSize < (int)PF_.size()) \
159 PFs_ << ACRed << "..."; \
161 msg_ << ACCR << ACCyan << ACBold << __LINE__ << ACPlain << ACYellow << "\t] [" \
162 << ACPlain << ACWhite << ACBold << PFs_.str() << ACPlain << ACYellow \
164 int blankSize = maxL - msg_.str().size() + 1; \
167 std::string blanks = ""; \
168 for(int i = 0; i < blankSize; ++i) \
172 std::cout << msg_.str() << blanks << COLOR << ACBold << MSG << ACPlain \
181 inline static int toInt(std::string inputString)
183 std::istringstream iss_;
184 iss_.str(inputString);
191 inline static double toDouble(std::string inputString)
193 std::istringstream iss_;
194 iss_.str(inputString);
201 inline static int toDec(
unsigned long long inputBinary)
203 std::stringstream ss;
207 n = Utils::toInt(ss.str());