Files
Cnomicon/include/libnet++/Clock.h
2021-01-22 10:16:20 -05:00

80 lines
1.6 KiB
C++

//
// Linux Daemon
//
/* prevent multiple inclusions */
#ifndef __Clock__
#define __Clock__
/* includes *****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <time.h>
#include <sys/time.h>
/* defines ******************************************************************/
/* macros *******************************************************************/
/* structs & typedefs *******************************************************/
/* c class definitions ******************************************************/
class Clock {
// public data
public:
// protected data
protected:
struct timespec Time;
// private data
private:
// public methods
public:
// constructors
Clock();
Clock( time_t tic );
// destructor
virtual ~Clock();
Clock( const Clock& );
const Clock& operator=( const Clock& );
// public methods
time_t GetUtc( void ) { return Time.tv_sec; };
struct timespec GetTimeSpec() { return Time; };
int Format( char *buf, int max );
struct timespec Parse( const char *buf );
void SetTime( void );
void SetTime( time_t sec, suseconds_t usec=0L );
void SetTime( const struct timespec &tv ) { Time = tv; };
// microsecond time stamp
unsigned long long GetTimeStamp();
void SetTimeStamp( unsigned long long ts );
// virtual functions
// exceptions
// static methods
static int Format( const struct timespec &tv, char **buf, int *max );
// private methods
private:
// signal catchers (do not override)
};
#endif