00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SBTIME_H
00021
#define COIN_SBTIME_H
00022
00023
00024
#include <time.h>
00025
#ifdef _WIN32
00026
#include <sys/timeb.h>
00027
00028
struct timeval;
00029
#else
00030
00031
#include <sys/time.h>
00032
#endif // ! WIN32
00033
00034
#include <stdio.h>
00035
00036
#include <Inventor/system/inttypes.h>
00037
#include <Inventor/SbBasic.h>
00038
#include <Inventor/SbString.h>
00039
00040
00041 class COIN_DLL_API SbTime {
00042
public:
00043 SbTime(
void);
00044 SbTime(
const double sec);
00045 SbTime(
const int32_t sec,
const long usec);
00046 SbTime(
const struct timeval *
const tv);
00047
static SbTime getTimeOfDay(
void);
00048
void setToTimeOfDay(
void);
00049
static SbTime zero(
void);
00050
00051
00052
00053
#ifndef _WIN32
00054
static SbTime max(
void);
00055
#endif // _WIN32
00056
00057
static SbTime maxTime(
void);
00058
void setValue(
const double sec);
00059
void setValue(
const int32_t sec,
const long usec);
00060
void setValue(
const struct timeval *
const tv);
00061
void setMsecValue(
const unsigned long msec);
00062
double getValue(
void)
const;
00063
void getValue(time_t & sec,
long & usec)
const;
00064
void getValue(
struct timeval * tv)
const;
00065
unsigned long getMsecValue(
void)
const;
00066
SbString format(
const char *
const fmt =
"%S.%i")
const;
00067
#ifndef _WIN32
00068
SbString formatDate(
const char *
const fmt =
"%A, %D %r")
const;
00069
#else // _WIN32
00070
SbString formatDate(
const char *
const fmt =
"%#c")
const;
00071
#endif // _WIN32
00072
SbBool parsedate(
const char *
const date);
00073
friend COIN_DLL_API SbTime operator +(
const SbTime & t0,
const SbTime & t1);
00074
friend COIN_DLL_API SbTime operator -(
const SbTime & t0,
const SbTime & t1);
00075 SbTime & operator +=(
const SbTime & tm);
00076 SbTime & operator -=(
const SbTime & tm);
00077 SbTime operator-(
void)
const;
00078
friend COIN_DLL_API SbTime operator *(
const double s,
const SbTime & tm);
00079
friend COIN_DLL_API SbTime operator *(
const SbTime & tm,
const double s);
00080
friend COIN_DLL_API SbTime operator /(
const SbTime & tm,
const double s);
00081 SbTime & operator *=(
const double s);
00082 SbTime & operator /=(
const double s);
00083
double operator /(
const SbTime & tm)
const;
00084 SbTime operator %(
const SbTime & tm)
const;
00085
int operator ==(
const SbTime & tm)
const;
00086
int operator !=(
const SbTime & tm)
const;
00087 SbBool operator <(
const SbTime & tm)
const;
00088 SbBool operator >(
const SbTime & tm)
const;
00089 SbBool operator <=(
const SbTime & tm)
const;
00090 SbBool operator >=(
const SbTime & tm)
const;
00091
00092
void print(FILE * fp)
const;
00093
00094
private:
00095
double dtime;
00096
void addToString(
SbString & str,
const double val)
const;
00097 };
00098
00099 COIN_DLL_API SbTime operator +(
const SbTime & t0,
const SbTime & t1);
00100 COIN_DLL_API SbTime operator -(
const SbTime & t0,
const SbTime & t1);
00101 COIN_DLL_API SbTime operator *(
const double s,
const SbTime & tm);
00102 COIN_DLL_API SbTime operator *(
const SbTime & tm,
const double s);
00103 COIN_DLL_API SbTime operator /(
const SbTime & tm,
const double s);
00104
00105
#endif // !COIN_SBTIME_H