#ifndef CCONSOLEHANDLER_H #define CCONSOLEHANDLER_H #ifndef _WIN32 #define WORD std::string #endif #ifndef _WIN32 #define _kill_thread(a,b) pthread_cancel(a); #else #define _kill_thread(a,b) TerminateThread(a,b); #endif namespace boost { template class function; } class DLL_EXPORT CConsoleHandler { public: boost::function *cb; int curLvl; int run(); void setColor(int level); CConsoleHandler(); ~CConsoleHandler(); #ifndef _WIN32 static void killConsole(pthread_t hThread); //for windows only, use native handle to the thread #else static void killConsole(void *hThread); //for windows only, use native handle to the thread #endif template void print(const T &data, int level) { setColor(level); std::cout << data << std::flush; setColor(-1); } }; #endif //CCONSOLEHANDLER_H