/********************************************************************************** * * * Copyright (c) 2003 - 2004 by Royal. All rights reserved. * * * * Permission to use, copy, modify, and distribute this software for any purpose * * is hereby granted without fee, provided that this copyright and permissions * * notice appear in all copies and derivatives, and that no charge may be made * * for the software and its documentation except to cover cost of distribution. * * * * This software is provided "as is" without express or implied warranty. * * * **********************************************************************************/ /* * Description: * * SimpleTimer is used to keep track of CPU time used. * * History: * * Initial version created by Royal, May, 2004. * Updated by Royal, July, 2004. * * Notes: * * This code has been written to conform to standard C++ and STL. It has been * compiled successfully using GNU C++ 3.2, Borland C++ 5.5, and Visual C++ 7.0. */ #ifndef SIMPLE_TIMER_H #define SIMPLE_TIMER_H #include #include #include class SimpleTimer { public: SimpleTimer() { reset(); } operator double() const { return (std::clock() - start_) / static_cast(CLOCKS_PER_SEC); } void reset() { start_ = std::clock(); } std::string now() { std::time_t t = time(0); std::tm* now = std::localtime(&t); int h, m, s; h = now->tm_hour; m = now->tm_min; s = now->tm_sec; char c[12]; std::sprintf(c, "%d:%d:%d", h, m, s); return std::string(c); } private: std::clock_t start_; }; #endif