TimeStamp.h

Go to the documentation of this file.
00001 /*
00002 *        This file contains class that serves as timestamp for grabbed frames from camera.
00003 *
00004 *       Author:
00005 *                       Tomas Mrkvicka
00006 *                       xmrkvi03@stud.fit.vutbr.cz
00007 *
00008 */
00009 
00010 #include <windows.h>
00011 
00012 // FORWARD DECLARATIONS
00013 namespace NSPipeline
00014 {
00015         class TimeStamp;
00016 }
00017 
00018 #ifndef _PIPELINE_TIMESTAMP_HH_
00019 #define _PIPELINE_TIMESTAMP_HH_
00020 
00021 namespace NSPipeline
00022 {
00023 
00024 ////////////////////////////////////////////////////////////////////////////////
00025 ////////////////////////////////////////////////////////////////////////////////
00026 ////////////////////////////////////////////////////////////////////////////////
00027 // TTimeStamp
00028 
00029 /** Trida pro reprezentaci casu.
00030 *
00031 *       Dulezity je predevsim operator porovnani dvou casu.
00032 *
00033 *       Pri vytvoreni je v objektu zaznamenan aktualni cas a tento stav je dale nemenny.
00034 *
00035 *       Pro porovnani pomoci operatoru "==" a "!=" se pouziva jedinecny ID ktery je inkrementovan
00036 *       s kazdym novym snimkem. Pro ostatni porovnani je pouzit casovy udaj.
00037 */
00038 class TTimeStamp
00039 {
00040 //PUBLIC METHODS
00041 public:
00042                                         TTimeStamp(void);
00043 
00044         DWORD                   GetID(void) const;
00045         DWORD                   GetTime(void) const;
00046 
00047         bool                    operator==(const TTimeStamp & second) const;
00048         bool                    operator!=(const TTimeStamp & second) const;
00049         bool                    operator<(const TTimeStamp & second) const;
00050         bool                    operator>(const TTimeStamp & second) const;
00051         bool                    operator<=(const TTimeStamp & second) const;
00052         bool                    operator>=(const TTimeStamp & second) const;
00053 
00054 //PRIVATE STATIC MEMBERS
00055 private:
00056         static DWORD    ms_actualID;            ///< jedinecny identifikator pouzity pro pristi vytvareny objekt
00057 
00058 //PRIVATE MEMBERS
00059 private:
00060         DWORD                   m_timeElapsed;          ///< ziskany cas v dobe vytvoreni
00061         DWORD                   m_id;                           ///< jedinecny identifikator - lepsi pro porovnani rovnosti
00062 };
00063 //OK 2007-08-25 15:33:54 B04-315B\Tom
00064 
00065 /** Konstruktor.
00066 *
00067 *       Zaznamenava cas v dobe vytvoreni objektu a take uklada jedinecne ID.
00068 */
00069 inline TTimeStamp::TTimeStamp(void)
00070 {
00071         m_id                    = ms_actualID;
00072         ms_actualID++;
00073 
00074         m_timeElapsed   = GetTickCount();
00075 }
00076 //OK 2007-08-25 15:33:56 B04-315B\Tom
00077 
00078 /** Vrati ID teto casove znacky.
00079 */
00080 inline DWORD TTimeStamp::GetID(void) const
00081 {
00082         return m_id;
00083 }
00084 //OK 2007-08-25 15:33:59 B04-315B\Tom
00085 
00086 /** Vrati cas ulozeny v objektu.
00087 *
00088 *       Cas je udaj v milisekundach reprezentujici pocet milisekund od spusteni
00089 *       systemu.
00090 */
00091 inline DWORD TTimeStamp::GetTime(void) const
00092 {
00093         return m_timeElapsed;
00094 }
00095 //OK 2007-08-25 15:36:36 B04-315B\Tom
00096 
00097 /** Operator porovnani.
00098 *
00099 *       Objekty se porovnavaji podle ID.
00100 *
00101 *       \param  second  [in] druhy cas k porovnani
00102 */
00103 inline bool TTimeStamp::operator==(const TTimeStamp & second) const
00104 {
00105         return m_id == second.m_id;
00106 }
00107 //OK 2007-08-25 15:36:34 B04-315B\Tom
00108 
00109 /** Operator nonekvivalence.
00110 *
00111 *       Objekty se porovnavaji podle ID.
00112 *
00113 *       \param  second  [in] druhy cas k porovnani
00114 */
00115 inline bool TTimeStamp::operator!=(const TTimeStamp & second) const
00116 {
00117         return m_id != second.m_id;
00118 }
00119 //OK 2007-08-25 15:36:32 B04-315B\Tom
00120 
00121 /** Operator mensi.
00122 *
00123 *       Objekty se porovnavaji podle casu.
00124 *
00125 *       \param  second  [in] druhy cas k porovnani
00126 */
00127 inline bool TTimeStamp::operator<(const TTimeStamp & second) const
00128 {
00129         return (m_timeElapsed < second.m_timeElapsed);
00130 }
00131 //OK 2007-08-25 15:36:30 B04-315B\Tom
00132 
00133 /** Operator vetsi.
00134 *
00135 *       Objekty se porovnavaji podle casu.
00136 *
00137 *       \param  second  [in] druhy cas k porovnani
00138 */
00139 inline bool TTimeStamp::operator>(const TTimeStamp & second) const
00140 {
00141         return (m_timeElapsed > second.m_timeElapsed);
00142 }
00143 //OK 2007-08-25 15:36:27 B04-315B\Tom
00144 
00145 /** Operator mensi nebo rovno.
00146 *
00147 *       Objekty se porovnavaji podle casu.
00148 *
00149 *       \param  second  [in] druhy cas k porovnani
00150 */
00151 inline bool TTimeStamp::operator<=(const TTimeStamp & second) const
00152 {
00153         return (m_timeElapsed <= second.m_timeElapsed);
00154 }
00155 //OK 2007-08-25 15:36:26 B04-315B\Tom
00156 
00157 /** Operator vetsi nebo rovno.
00158 *
00159 *       Objekty se porovnavaji podle casu.
00160 *
00161 *       \param  second  [in] druhy cas k porovnani
00162 */
00163 inline bool TTimeStamp::operator>=(const TTimeStamp & second) const
00164 {
00165         return (m_timeElapsed >= second.m_timeElapsed);
00166 }
00167 //OK 2007-08-25 15:36:24 B04-315B\Tom
00168 
00169 // TTimeStamp
00170 ////////////////////////////////////////////////////////////////////////////////
00171 ////////////////////////////////////////////////////////////////////////////////
00172 ////////////////////////////////////////////////////////////////////////////////
00173 
00174 }; //end of NSPipeline
00175 using namespace NSPipeline;
00176 
00177 #endif

Generated on Sat Nov 17 16:23:26 2007 for Image Processing Pipeline by  doxygen 1.4.6-NO