⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os.h

📁 跨操作系统的微型中间件
💻 H
字号:
/*    File:       OS.h    Contains:   OS utility functions. Memory allocation, time, etc.*/#ifndef _OS_H_#define _OS_H_#ifdef  __linux__#include <sys/errno.h>#else#include <errno.h>#endif#include <string>#include "OSHeaders.h"
class OS{    public:            //call this before calling anything else        static void Initialize();        static Int32 Min(Int32 a, Int32 b)   { if (a < b) return a; return b; }
		static Int32 Max(Int32 a, Int32 b)   { if (a > b) return a; return b; }                //        // Milliseconds always returns milliseconds since Jan 1, 1970 GMT.        // This basically makes it the same as a POSIX time_t value, except        // in msec, not seconds. To convert to a time_t, divide by 1000.        static Int64   Milliseconds();        static Int64   Microseconds();        		static OS_Error GetErrno();         //because the OS doesn't seem to have these functions        static Int64   HostToNetworkInt64(Int64 hostOrdered);        static Int64   NetworkToHostInt64(Int64 networkOrdered);                            		static Int64	TimeMilli_To_Fixed64Secs(Int64 inMilliseconds)                        { return (Int64) ( (Float64) inMilliseconds / 1000) * ((Int64) 1 << 32 ) ; }				static Int64	TimeMilli_To_1900Fixed64Secs(Int64 inMilliseconds)						{ return TimeMilli_To_Fixed64Secs(sMsecSince1900) + TimeMilli_To_Fixed64Secs(inMilliseconds); }		static Int64	TimeMilli_To_UnixTimeMilli(Int64 inMilliseconds)						{ return inMilliseconds; }		static time_t	TimeMilli_To_UnixTimeSecs(Int64 inMilliseconds)						{ return (time_t)  ( (Int64) TimeMilli_To_UnixTimeMilli(inMilliseconds) / (Int64) 1000); }				static time_t 	UnixTime_Secs(void) // Seconds since 1970						{ return TimeMilli_To_UnixTimeSecs(Milliseconds()); }        static time_t   Time1900Fixed64Secs_To_UnixTimeSecs(Int64 in1900Fixed64Secs)                        { return (time_t)( (Int64)  ((Int64)  ( in1900Fixed64Secs - TimeMilli_To_Fixed64Secs(sMsecSince1900) ) /  ((Int64) 1 << 32)  ) ); }                                    static Int64   Time1900Fixed64Secs_To_TimeMilli(Int64 in1900Fixed64Secs)                        { return   ( (Int64) ( (Float64) ((Int64) in1900Fixed64Secs - (Int64) TimeMilli_To_Fixed64Secs(sMsecSince1900) ) / (Float64)  ((Int64) 1 << 32) ) * 1000) ; }         // Returns the offset in hours between local time and GMT (or UTC) time.        static Int32   GetGMTOffset();                                    //Both these functions return QTSS_NoErr, QTSS_FileExists, or POSIX errorcode        //Makes whatever directories in this path that don't exist yet         static OS_Error RecursiveMakeDir(char *inPath);        //Makes the directory at the end of this path        static OS_Error MakeDir(char *inPath);        		static char * CTime(const time_t *timep, char* buffer, int buffLen);		static Bool DelFile(const char* pFile);		static Bool DelDir(const char* pDir);		static Bool RecursiveDelDir(const char *inPath);        // Discovery of how many processors are on this machine        static UInt32   GetNumProcessors();                // CPU Load        static Float32  GetCurrentCPULoadPercent();        	static Bool ConvertTimeToString(time_t v_t,char* v_str);                static Int64   InitialMSec()       { return sInitialMsec; }        static Float32  StartTimeMilli_Float() { return (Float32) ( (Float64) ( (Int64) OS::Milliseconds() - (Int64) OS::InitialMSec()) / (Float64) 1000.0 ); }        static Int64   StartTimeMilli_Int()      { return (OS::Milliseconds() - OS::InitialMSec()); }		static void Sleep(UInt32 inMsec);

		static Bool IsFileExist(const char* fileName);
		static UInt64 LocalTimeToTime(const std::string& strLocalTime);

		static Int32	Rand();
			   private:
	   static UInt64 DateToSecond(Int32 nYear, Int32 nMounth, Int32 nDay, Int32 nHour, Int32 nMin, Int32 nSec);	               static double sDivisor;        static double sMicroDivisor;        static Int64 sMsecSince1900;        static Int64 sMsecSince1970;        static Int64 sInitialMsec;        static Int32 sMemoryErr;        static void SetDivisor();        static Int64 sWrapTime;        static Int64 sCompareWrap;        static Int64 sLastTimeMilli;
};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -