All Classes Namespaces Files Functions Variables Enumerations Enumerator
libs/system/CycleTimer.h
Go to the documentation of this file.
00001 #ifndef QRK_CYCLE_TIMER_H
00002 #define QRK_CYCLE_TIMER_H
00003 
00013 #include <memory>
00014 #include <cstdio>
00015 
00016 
00017 namespace qrk
00018 {
00020     class CycleTimer
00021     {
00022     public:
00023         enum {
00024             DefaultFps = 60,          
00025         };
00026 
00027         CycleTimer(void);
00028         ~CycleTimer(void);
00029 
00030 
00044         size_t waitMsec(void);
00045 
00046 
00052         void reset(void);
00053 
00054 
00060         void setStrictCycle(bool on);
00061 
00062 
00070         void setCycleFps(size_t fps);
00071 
00072 
00078         size_t cycleFps(void) const;
00079 
00080 
00088         void setCycleMsec(size_t delay_msec);
00089 
00090 
00096         size_t cycleMsec(void) const;
00097 
00098 
00104         int toNextCycleMsec(void);
00105 
00106     private:
00107         CycleTimer(const CycleTimer& rhs);
00108         CycleTimer& operator = (const CycleTimer& rhs);
00109 
00110         struct pImpl;
00111         std::auto_ptr<pImpl> pimpl;
00112     };
00113 }
00114 
00115 #endif /* !QRK_CYCLE_TIMER_H */