#include <cstdlib>
#include <ctime>
+#include <msp/core/mspcore_api.h>
#include <msp/strings/lexicalcast.h>
#include "rawtime.h"
/**
Represents a quantity of time, such as five seconds.
*/
-class TimeDelta
+class MSPCORE_API TimeDelta
{
private:
RawTime usec = 0;
bool operator==(const TimeDelta &t) const { return usec==t.usec; }
bool operator!=(const TimeDelta &t) const { return usec!=t.usec; }
- operator const void *() const { return usec ? this : 0; }
+ explicit operator bool() const { return usec; }
};
template<typename T>
inline TimeDelta operator*(T a, const TimeDelta &t) { return t*a; }
-void operator<<(LexicalConverter &, const TimeDelta &);
+MSPCORE_API void operator<<(LexicalConverter &, const TimeDelta &);
// Constants to be used in creation of TimeDeltas
-extern const TimeDelta zero;
-extern const TimeDelta usec;
-extern const TimeDelta msec;
-extern const TimeDelta sec;
-extern const TimeDelta min;
-extern const TimeDelta hour;
-extern const TimeDelta day;
-extern const TimeDelta week;
+MSPCORE_API extern const TimeDelta zero;
+MSPCORE_API extern const TimeDelta usec;
+MSPCORE_API extern const TimeDelta msec;
+MSPCORE_API extern const TimeDelta sec;
+MSPCORE_API extern const TimeDelta min;
+MSPCORE_API extern const TimeDelta hour;
+MSPCORE_API extern const TimeDelta day;
+MSPCORE_API extern const TimeDelta week;
inline TimeDelta abs(const TimeDelta &t) { return t>=zero ? t : -t; }
using std::abs;