#pragma once

namespace Gos2 {

class Util : public GosUtil
{
	static _int64			m_tInitializeTick;
	static double			m_rTicksPerSecond;
	static _int64			m_tTicksPerSecond;
	static _int64			m_tTicksPerMillisecond;
	static _int64			m_tTicksPerMicrosecond;
public:

	static bool				Initialize();
	static	void			Shutdown();

	static DWORD			LZCompress( BYTE *pDest, BYTE *pSrc, DWORD SrcLen );
	static DWORD			LZDecompress( BYTE *pDest, BYTE *pSrc, DWORD SrcLen );

	static int				Rand();

	static _int64			Time_uS(bool Clamp);	// time in uS since app was started
	static DWORD			Time_mS(bool Clamp);	// time in mS since app was started WRAPS EVERY 64 DAYS!
	static double			Time_S(bool Clamp);		// time in S since app was started

	static DWORD			GetClipboardText( TCHAR *Dest, DWORD MaxSize );
	static void				SetClipboardText( TCHAR *Text );

};

} using namespace Gos2;
