#pragma once #include #include #include #include #include class FileTools { private: std::string mPath; public: FileTools(std::string path){ mPath = path; } void createLog(std::string log) { time_t now = time(0); tm *ltm = localtime(&now); char loc_date[30]; sprintf(loc_date, "%d%02d%02d %d:%d:%d", 1900 + ltm->tm_year, 1 + ltm->tm_mon, ltm->tm_mday,ltm->tm_hour, ltm->tm_min, ltm->tm_sec); std::ofstream ofs(mPath); ofs << loc_date << ": " << log << std::endl; ofs.close(); } void appendLog(std::string log, bool printTime = true) { std::ofstream ofs(mPath, std::ios::app); if(printTime){ time_t now = time(0); tm *ltm = localtime(&now); char loc_date[30]; sprintf(loc_date, "%d%02d%02d %d:%d:%d", 1900 + ltm->tm_year, 1 + ltm->tm_mon, ltm->tm_mday,ltm->tm_hour, ltm->tm_min, ltm->tm_sec); ofs << loc_date << ": " << log << std::endl; }else{ ofs << " " << log << std::endl; } ofs.close(); } }; class StopWatch { public: StopWatch() { _start = std::chrono::steady_clock::now(); } void reset() { _start = std::chrono::steady_clock::now(); } double elapsed_s() { return std::chrono::duration(std::chrono::steady_clock::now() - _start).count(); } double elapsed_ms() { return std::chrono::duration(std::chrono::steady_clock::now() - _start).count(); } double elapsed_us() { return std::chrono::duration(std::chrono::steady_clock::now() - _start).count(); } double elapsed_ns() { return std::chrono::duration(std::chrono::steady_clock::now() - _start).count(); } private: std::chrono::steady_clock::time_point _start; };