60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "stdafx.h"
 | |
| #include "os_abstraction.h"
 | |
| 
 | |
| // in Lunux must include <sys/time.h>
 | |
| 
 | |
| // returns number of milliseconds of current time
 | |
| // in windows - since Windows Start (uptime)
 | |
| // in Lunux - in current day
 | |
| unsigned long long int OS_GetTickCount()
 | |
| {
 | |
| #if defined(_WIN32) || defined(WIN32) || defined(WINVER) || defined(_WIN32_WINNT)
 | |
| 	return (unsigned long long int)GetTickCount();
 | |
| #else
 | |
| 	timeval tv;
 | |
| 	if( gettimeofday( &tv, NULL ) == 0 )
 | |
| 	{
 | |
| 		return (unsigned long long int)( ((unsigned long long int)tv.tv_sec*1000) + tv.tv_usec/1000 );
 | |
| 	}
 | |
| 	else return 0; // error
 | |
| #endif
 | |
| }
 | |
| 
 | |
| /** gettimeofday() description: The gettimeofday() function shall obtain the current time,
 | |
| expressed as seconds and microseconds since the Epoch, and store it in the timeval structure
 | |
| pointed to by tp. The resolution of the system clock is unspecified.
 | |
| If tzp is not a null pointer, the behavior is unspecified. **/
 | |
| 
 | |
| /** struct timeval {
 | |
| time_t          tv_sec;         // seconds
 | |
| suseconds_t     tv_usec;        // microseconds
 | |
| }; **/
 | |
| 
 | |
| 
 | |
| 
 | |
| /** http://www.linuxmanpages.com/man2/gettimeofday.2.php
 | |
| uses Libc, .....
 | |
| {$IFDEF LINUX}
 | |
| function GetTickCount: Cardinal;
 | |
| var
 | |
| tv: timeval;
 | |
| begin
 | |
| gettimeofday(tv, nil);
 | |
| {$RANGECHECKS OFF}
 | |
| Result := int64(tv.tv_sec) * 1000 + tv.tv_usec div 1000;
 | |
| end;
 | |
| {$ENDIF}
 | |
| **/
 | |
| 
 | |
| /** Another idea:
 | |
| Implement GetTickCount in Linux
 | |
| To implement the GetTickCount API when porting code from Windows to Linux, use the following code:
 | |
| 
 | |
| long getTickCount()
 | |
| {
 | |
|     tms tm;
 | |
|     return times(&tm);
 | |
| }
 | |
| 
 | |
| **/
 | 
