Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

misc/timer.h

Go to the documentation of this file.
00001 #ifndef MISC_TIMER_H
00002 #define MISC_TIMER_H
00003 
00004 /*
00005 
00006   GLT OpenGL C++ Toolkit (LGPL)
00007   Copyright (C) 2000-2002 Nigel Stewart  
00008 
00009   Email: nigels.com@gmail.com   
00010   WWW:   http://www.nigels.com/glt/
00011 
00012   This library is free software; you can redistribute it and/or
00013   modify it under the terms of the GNU Lesser General Public
00014   License as published by the Free Software Foundation; either
00015   version 2.1 of the License, or (at your option) any later version.
00016 
00017   This library is distributed in the hope that it will be useful,
00018   but WITHOUT ANY WARRANTY; without even the implied warranty of
00019   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020   Lesser General Public License for more details.
00021 
00022   You should have received a copy of the GNU Lesser General Public
00023   License along with this library; if not, write to the Free Software
00024   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025 
00026 */
00027 
00034 #include <glt/config.h>
00035 
00036 #include <ctime>
00037 #include <iosfwd>
00038 
00039 #ifdef GLT_UNIX
00040 #include <sys/time.h>
00041 #endif
00042 
00060 class Timer
00061 {
00062 public:
00063     /*
00064         Interface for individual timers.
00065     */
00066 
00068     Timer();
00070     Timer(std::ostream &);
00072     ~Timer();
00073 
00075     double elapsed() const;
00076 
00078     clock_t clock() const;
00079 
00081     void start();
00082 
00083     /*
00084         Interface for controlling
00085         time globally.
00086     */
00087 
00089     static void freeze();
00090     
00092     static void unFreeze();
00093     
00095     static void advance(const uint32 msec);
00096 
00097 private:
00098 
00099     #ifdef GLT_WIN32
00100            clock_t _start;
00101            clock_t _end;
00102     static clock_t _frozen;
00103     #endif
00104 
00105     #ifdef GLT_UNIX
00106            timeval _start;
00107            timeval _end;
00108     static timeval _frozen;
00109     #endif
00110 
00111     static uint32 _frozenCount;
00112 
00113     std::ostream *_os;
00114 };
00115 
00116 #endif

Generated on Tue Nov 5 11:11:05 2002 for GLT by doxygen1.2.18