Logo
~Sockets~
~Examples~
~Contact~


EventTime.cpp

Go to the documentation of this file.
00001 
00005 /*
00006 Copyright (C) 2005,2007  Anders Hedstrom
00007 
00008 This library is made available under the terms of the GNU GPL.
00009 
00010 If you would like to use this library in a closed-source application,
00011 a separate license agreement is available. For information about 
00012 the closed-source license agreement for the C++ sockets library,
00013 please visit http://www.alhem.net/Sockets/license.html and/or
00014 email license@alhem.net.
00015 
00016 This program is free software; you can redistribute it and/or
00017 modify it under the terms of the GNU General Public License
00018 as published by the Free Software Foundation; either version 2
00019 of the License, or (at your option) any later version.
00020 
00021 This program is distributed in the hope that it will be useful,
00022 but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 GNU General Public License for more details.
00025 
00026 You should have received a copy of the GNU General Public License
00027 along with this program; if not, write to the Free Software
00028 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00029 */
00030 #include "EventTime.h"
00031 #ifdef _WIN32
00032 #include <windows.h>
00033 #else
00034 #include <sys/select.h>
00035 #include <sys/time.h>
00036 #endif
00037 
00038 
00039 
00040 #ifdef SOCKETS_NAMESPACE
00041 namespace SOCKETS_NAMESPACE {
00042 #endif
00043 
00044 
00045 EventTime::EventTime() : m_time(Tick())
00046 {
00047 }
00048 
00049 
00050 EventTime::EventTime(mytime_t sec,long usec) : m_time(Tick())
00051 {
00052         m_time += sec * 1000000 + usec;
00053 }
00054 
00055 
00056 EventTime::~EventTime()
00057 {
00058 }
00059 
00060 
00061 mytime_t EventTime::Tick()
00062 {
00063         mytime_t t;
00064 #ifdef _WIN32
00065         FILETIME ft;
00066         GetSystemTimeAsFileTime(&ft);
00067         t = ft.dwHighDateTime;
00068         t = t << 32;
00069         t += ft.dwLowDateTime;
00070         t /= 10; // us
00071 #else
00072         struct timeval tv;
00073         struct timezone tz;
00074         gettimeofday(&tv, &tz);
00075         t = tv.tv_sec;
00076         t *= 1000000;
00077         t += tv.tv_usec;
00078 #endif
00079         return t;
00080 }
00081 
00082 
00083 EventTime EventTime::operator - (const EventTime& x) const
00084 {
00085         EventTime t;
00086         t.m_time = m_time - x.m_time;
00087         return t;
00088 }
00089 
00090 
00091 bool EventTime::operator < (const EventTime& x) const
00092 {
00093         return m_time < x.m_time;
00094 }
00095 
00096 
00097 #ifdef SOCKETS_NAMESPACE
00098 }
00099 #endif
Page, code, and content Copyright (C) 2007 by Anders Hedström
Generated for C++ Sockets by  doxygen 1.4.4