Added the getmilliSeconds() function for the WIN32 environnement.
_WIN32 & MinGW compiler uses std::clock() _CYGWIN_ & linux compilers uses gettimeofday() implementation git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@780 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
7dbb105cab
commit
f6e7714eca
1 changed files with 23 additions and 14 deletions
|
@ -37,24 +37,33 @@
|
||||||
|
|
||||||
#include <loki/CachedFactory.h>
|
#include <loki/CachedFactory.h>
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
typedef long milliSec;
|
||||||
|
|
||||||
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
milliSec getmilliSeconds()
|
||||||
|
{
|
||||||
|
return std::clock()*1000/CLOCKS_PER_SEC;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
void Sleep(unsigned int t) { usleep( 1000 * static_cast<unsigned long>(t));}
|
void Sleep(unsigned int t) { usleep( 1000 * static_cast<unsigned long>(t));}
|
||||||
#include <sys/time.h>
|
/**
|
||||||
typedef long milliSec;
|
* Returns the number of milliseconds elapsed from the epoch.
|
||||||
milliSec getmilliSeconds()
|
* This counter might overrun and come back to 0.
|
||||||
{
|
* This might give a false result in the following tests.
|
||||||
struct timeval time;
|
*/
|
||||||
time.tv_usec = 0;
|
#include <sys/time.h>
|
||||||
time.tv_sec = 0;
|
milliSec getmilliSeconds()
|
||||||
gettimeofday(&time, NULL);
|
{
|
||||||
return milliSec(time.tv_usec/1000+time.tv_sec*1000);
|
struct timeval time;
|
||||||
}
|
time.tv_usec = 0;
|
||||||
|
time.tv_sec = 0;
|
||||||
|
gettimeofday(&time, NULL);
|
||||||
|
return milliSec(time.tv_usec/1000+time.tv_sec*1000);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
using std::cerr;
|
using std::cerr;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
|
@ -314,7 +323,7 @@ bool testRateLimitedFetchPolicy(bool waitBetweenFetch)
|
||||||
|
|
||||||
bool exceptionOccured = false;
|
bool exceptionOccured = false;
|
||||||
const int number(5);
|
const int number(5);
|
||||||
const int sleepTime(60);
|
const int sleepTime(70);
|
||||||
AbstractProduct *products[number];
|
AbstractProduct *products[number];
|
||||||
for(int i=0;i<number;i++) products[i]=NULL; // initializing
|
for(int i=0;i<number;i++) products[i]=NULL; // initializing
|
||||||
try{
|
try{
|
||||||
|
@ -342,7 +351,7 @@ bool fullTestRateLimitedFetchPolicy()
|
||||||
cout << " || => Setting rate limit to 2 fetch within 100 ms." << endl;
|
cout << " || => Setting rate limit to 2 fetch within 100 ms." << endl;
|
||||||
cout << " || => generating 5 objects " << endl;
|
cout << " || => generating 5 objects " << endl;
|
||||||
bool test1 = dispResult("Fast creation", testRateLimitedFetchPolicy(false)==true);
|
bool test1 = dispResult("Fast creation", testRateLimitedFetchPolicy(false)==true);
|
||||||
cout << " || => generating 5 objects with 60ms between each Fetch" << endl;
|
cout << " || => generating 5 objects with 70ms between each Fetch" << endl;
|
||||||
bool test2 = dispResult("Slow creation", testRateLimitedFetchPolicy(true)==false);
|
bool test2 = dispResult("Slow creation", testRateLimitedFetchPolicy(true)==false);
|
||||||
return test1 && test2;
|
return test1 && test2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue