diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 3f3eb7c76..9cfbab8c8 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -538,6 +538,8 @@ CFileHelpers::CFileHelpers() FileBufSize = 0xFFFF; FileBuf = new char[FileBufSize]; doCopyFlag = true; + ConsoleQuiet = false; + clearDebugInfo(); } CFileHelpers::~CFileHelpers() @@ -554,6 +556,36 @@ CFileHelpers* CFileHelpers::getInstance() return FileHelpers; } +void CFileHelpers::clearDebugInfo() +{ + DebugInfo.msg.clear(); + DebugInfo.file.clear(); + DebugInfo.func.clear(); + DebugInfo.line = 0; +} + +void CFileHelpers::setDebugInfo(const char* msg, const char* file, const char* func, int line) +{ + DebugInfo.msg = msg; + DebugInfo.file = file; + DebugInfo.func = func; + DebugInfo.line = line; +} + +void CFileHelpers::readDebugInfo(helpersDebugInfo* di) +{ + di->msg = DebugInfo.msg; + di->file = DebugInfo.file; + di->func = DebugInfo.func; + di->line = DebugInfo.line; +} + +void CFileHelpers::printDebugInfo() +{ + if (!ConsoleQuiet) + printf(">>>> [%s:%d] %s\n", DebugInfo.func.c_str(), DebugInfo.line, DebugInfo.msg.c_str()); +} + bool CFileHelpers::cp(const char *Src, const char *Dst, const char *Flags/*=""*/) { if ((Src == NULL) || (Dst == NULL)) diff --git a/src/system/helpers.h b/src/system/helpers.h index 74276b12e..3f11909dd 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -74,6 +74,13 @@ time_t toEpoch(std::string &date); std::string& str_replace(const std::string &search, const std::string &replace, std::string &text); std::string& htmlEntityDecode(std::string& text); +struct helpersDebugInfo { + std::string msg; + std::string file; + std::string func; + int line; +}; + class CFileHelpers { private: @@ -81,12 +88,22 @@ class CFileHelpers char *FileBuf; int fd1, fd2; + bool ConsoleQuiet; + helpersDebugInfo DebugInfo; + void setDebugInfo(const char* msg, const char* file, const char* func, int line); + void printDebugInfo(); + public: CFileHelpers(); ~CFileHelpers(); static CFileHelpers* getInstance(); bool doCopyFlag; + void clearDebugInfo(); + void readDebugInfo(helpersDebugInfo* di); + void setConsoleQuiet(bool q) { ConsoleQuiet = q; }; + bool getConsoleQuiet() { return ConsoleQuiet; }; + bool cp(const char *Src, const char *Dst, const char *Flags=""); bool copyFile(const char *Src, const char *Dst, mode_t forceMode=0); bool copyDir(const char *Src, const char *Dst, bool backupMode=false);