diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-03 17:11:43 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-08 10:21:07 +0100 |
| commit | 0c39051ba80f04b1177833a006f2d442a7170b56 (patch) | |
| tree | 9e657946a061b5b305f9cf75634db7b37e979eb3 /labb8/lib/StanfordCPPLib/gtimer.cpp | |
| parent | 7b7f6808a7b2db2ed21103767434c1445f7815c2 (diff) | |
| download | tddd86-0c39051ba80f04b1177833a006f2d442a7170b56.tar.gz | |
add initial files l8
Diffstat (limited to 'labb8/lib/StanfordCPPLib/gtimer.cpp')
| -rwxr-xr-x | labb8/lib/StanfordCPPLib/gtimer.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/labb8/lib/StanfordCPPLib/gtimer.cpp b/labb8/lib/StanfordCPPLib/gtimer.cpp new file mode 100755 index 0000000..20e160d --- /dev/null +++ b/labb8/lib/StanfordCPPLib/gtimer.cpp @@ -0,0 +1,62 @@ +/* + * File: gtimer.cpp + * ---------------- + * This file implements the gtimer.h interface. + */ + +#include <iostream> +#include <sstream> +#include <string> +#include "platform.h" +using namespace std; + +/* Global variables */ + +static Platform *pp = getPlatform(); + +/* Implementation of the GTimer class */ + +GTimer::GTimer(double milliseconds) { + gtd = new GTimerData(); + gtd->refCount = 1; + pp->createTimer(*this, milliseconds); +} + +GTimer::~GTimer() { + if (--gtd->refCount == 0) delete gtd; +} + +void GTimer::start() { + pp->startTimer(*this); +} + +void GTimer::stop() { + pp->stopTimer(*this); +} + +bool GTimer::operator==(GTimer t2) { + return gtd == t2.gtd; +} + +bool GTimer::operator!=(GTimer t2) { + return gtd != t2.gtd; +} + +GTimer::GTimer(GTimerData *gtd) { + this->gtd = gtd; + gtd->refCount++; +} + +GTimer::GTimer(const GTimer & src) { + this->gtd = src.gtd; + this->gtd->refCount++; +} + +GTimer & GTimer::operator=(const GTimer & src) { + if (this != &src) { + if (--gtd->refCount == 0) delete gtd; + this->gtd = src.gtd; + this->gtd->refCount++; + } + return *this; +} |
