#ifndef CLOCK_H
#define CLOCK_H

	/**
	 * a wrapper for the system clock
	 * that DOES not change the systems clock
	 * but offers functionality to add a little drift
	 * to the clock
	 */
	typedef struct Clock
	{
		/**
		 * returns the current time in seconds
		 */
		int (*getCurrent)(struct Clock *clock);
		
		/**
		 * returns the current time in mikroseconds (usec)
		 */
		double (*getCurrentMikrotime)(struct Clock *clock);

		/**
		 * simulates the adjustment of the system time
		 * NOT IMPLEMENTED
		 */
		void (*adjust)(struct Clock *clock, double offset);
	} Clock;
	
	/**
	 * before using a clock object
	 * this function HAS TO BE CALLED first!
	 */
	void initClock(Clock *clock);

#endif

