17 static void Sleep(
const uint& MSecs);
18 static TStr GetExeFNm();
19 static void SetLowPriority();
20 static bool ExeProc(
const TStr& ExeFNm,
TStr& ParamStr);
25 ClassTP(TSysMemStat, PSysMemStat)
27 MEMORYSTATUSEX MemStat;
29 TSysMemStat(){Refresh();}
35 TSysMemStat& operator=(
const TSysMemStat&){
Fail;
return *
this;}
38 MemStat.dwLength=
sizeof(MEMORYSTATUSEX);
39 GlobalMemoryStatusEx(&MemStat);}
42 return uint64(MemStat.dwMemoryLoad);}
44 return uint64(MemStat.ullTotalPhys);}
46 return uint64(MemStat.ullAvailPhys);}
48 return uint64(MemStat.ullTotalPageFile);}
50 return uint64(MemStat.ullAvailPageFile);}
52 return uint64(MemStat.ullTotalVirtual);}
54 return uint64(MemStat.ullAvailVirtual);}
61 static bool Is32Bit(){
return sizeof(
char*)==4;}
62 static bool Is64Bit(){
return sizeof(
char*)==8;}
67 ClassTP(TSysConsole, PSysConsole)
73 static PSysConsole New(){
return PSysConsole(
new TSysConsole());}
76 static PSysConsole Load(
TSIn&){
Fail;
return NULL;}
79 TSysConsole& operator=(
const TSysConsole&){
Fail;
return *
this;}
81 void Put(
const TStr& Str);
82 void PutLn(
const TStr& Str){
83 Put(Str); Put(
"\r\n");}
85 static void OpenFile(
const TStr& FNm){
86 ShellExecute(0,
"open", FNm.
CStr(),
"",
"", SW_SHOWNORMAL);}
91 class TSysConsoleNotify:
public TNotify{
93 PSysConsole SysConsole;
95 TSysConsoleNotify(
const PSysConsole& _SysConsole):
96 SysConsole(_SysConsole){}
97 static PNotify New(
const PSysConsole& _SysConsole){
98 return PNotify(
new TSysConsoleNotify(_SysConsole));}
116 static TTm GetCurUniTm();
117 static TTm GetCurLocTm();
118 static uint64 GetCurUniMSecs();
119 static uint64 GetCurLocMSecs();
120 static uint64 GetMSecsFromTm(
const TTm& Tm);
121 static TTm GetTmFromMSecs(
const uint64& MSecs);
122 static uint GetMSecsFromOsStart();
124 static TTm GetLocTmFromUniTm(
const TTm& Tm);
125 static TTm GetUniTmFromLocTm(
const TTm& Tm);
127 static uint64 GetProcessMSecs();
128 static uint64 GetThreadMSecs();
130 static uint64 GetPerfTimerFq();
131 static uint64 GetPerfTimerTicks();
138 static TStr GetCmLn();
139 static TStr GetMsgStr(
const DWORD& MsgCd);
140 static TStr GetLastMsgStr(){
return GetMsgStr(GetLastError());}
141 static char* GetLastMsgCStr();
143 static BSTR NewBStr(
const TStr& Str){
144 return SysAllocStringByteLen(Str.
CStr(), Str.
Len());}
145 static TStr DelBStr(BSTR& BStr){
146 TStr Str=(
char*)BStr; SysFreeString(BStr); BStr=NULL;
return Str;}
155 void UndefCopyAssgin(TRegKey);
157 TRegKey(): Ok(false), hKey(0){}
158 TRegKey(
const bool& _Ok,
const HKEY& _hKey): Ok(_Ok), hKey(_hKey){}
159 ~TRegKey(){
if (Ok){RegCloseKey(hKey);}}
161 HKEY GetHandle()
const {
return hKey;}
163 static PRegKey GetKey(
const PRegKey& Key,
const TStr& SubKeyNm);
164 static TStr GetVal(
const PRegKey& Key,
const TStr& SubKeyNm,
const TStr& ValNm);
165 static PRegKey GetClassesRootKey(){
return new TRegKey(
true, HKEY_CLASSES_ROOT);}
166 static PRegKey GetCurrentUserKey(){
return new TRegKey(
true, HKEY_CURRENT_USER);}
167 static PRegKey GetLocalMachineKey(){
return new TRegKey(
true, HKEY_LOCAL_MACHINE);}
168 static PRegKey GetUsersKey(){
return new TRegKey(
true, HKEY_USERS);}
170 bool IsOk()
const {
return Ok;}
171 void GetKeyNmV(
TStrV& KeyNmV)
const;
172 void GetValV(
TStrKdV& ValNmStrKdV)
const;
179 HANDLE ChildStdinRd, ChildStdinWrDup;
180 HANDLE ChildStdoutWr, ChildStdoutRdDup;
181 void CreateProc(
const TStr& Cmd);
185 TStdIOPipe(
const TStr& CmdToExe);
188 int Write(
const char* Bf) {
return Write(Bf, (
int) strlen(Bf)); }
189 int Write(
const char* Bf,
const int& BfLen);
190 int Read(
char *Bf,
const int& BfMxLen);
193 #elif defined(GLib_UNIX)
198 int GetModuleFileName(
void *hModule,
char *Bf,
int MxBfL);
199 int GetCurrentDirectory(
const int MxBfL,
char *Bf);
200 int CreateDirectory(
const char *FNm,
void *useless);
201 int RemoveDirectory(
const char *FNm);
202 uint64 Epoch2Ft(time_t Epoch);
203 time_t Ft2Epoch(
uint64 Ft);
209 static int Sleep(
const uint& MSecs);
210 static TStr GetExeFNm();
211 static void SetLowPriority();
212 static bool ExeProc(
const TStr& ExeFNm,
TStr& ParamStr);
227 static TTm GetCurUniTm();
228 static TTm GetCurLocTm();
229 static uint64 GetCurUniMSecs();
230 static uint64 GetCurLocMSecs();
231 static uint64 GetMSecsFromTm(
const TTm& Tm);
232 static TTm GetTmFromMSecs(
const uint64& MSecs);
233 static uint GetMSecsFromOsStart();
235 static TTm GetLocTmFromUniTm(
const TTm& Tm);
236 static TTm GetUniTmFromLocTm(
const TTm& Tm);
238 static uint64 GetProcessMSecs();
239 static uint64 GetThreadMSecs();
241 static uint64 GetPerfTimerFq();
242 static uint64 GetPerfTimerTicks();
250 int ChildStdinRd, ChildStdinWrDup;
251 int ChildStdoutWr, ChildStdoutRdDup;
252 void CreateProc(
const TStr& Cmd);
256 TStdIOPipe(
const TStr& CmdToExe);
259 int Write(
const char* Bf) {
return Write(Bf, (
int) strlen(Bf)); }
260 int Write(
const char* Bf,
const int& BfLen);
261 int Read(
char *Bf,
const int& BfMxLen);
#define UndefDefaultCopyAssign(TNm)
#define ClassTP(TNm, PNm)
unsigned long long uint64
virtual void OnNotify(const TNotifyType &, const TStr &)
enum TNotifyType_ TNotifyType
virtual void OnStatus(const TStr &)
Vector is a sequence TVal objects representing an array that can change in size.