virtual zfindex outputLog(ZF_IN const zfchar *s, ZF_IN_OPT zfindex count = zfindexMax) { if(count == zfindexMax) { printf(zfTextA("%s"), ZFStringZ2A(s)); } else { zfstring tmp(s, count); printf(zfTextA("%s"), ZFStringZ2A(tmp.cString())); } return zfindexMax; }
ZF_NAMESPACE_GLOBAL_BEGIN static void _ZFP_ZFLog_ZFCoreLogExtFunc(ZF_IN const zfchar *callerFile, ZF_IN const zfchar *callerFunction, ZF_IN zfindex callerLine) { if(zfLogStackTraceAvailable()) { zfCoreLogTrim(ZFStringZ2A(zfLogStackTrace(zfnull, 2).cString())); } }
virtual ZFFileToken fileOpen(ZF_IN const zfchar *filePath, ZF_IN_OPT ZFFileOpenOptionFlags flag = ZFFileOpenOption::e_Read) { const zfcharA *sFlag = zfnull; if(ZFBitTest(flag, ZFFileOpenOption::e_Append)) { if(ZFBitTest(flag, ZFFileOpenOption::e_Read)) { sFlag = zfTextA("a+b"); } else { sFlag = zfTextA("ab"); } } else if(ZFBitTest(flag, ZFFileOpenOption::e_Create)) { if(ZFBitTest(flag, ZFFileOpenOption::e_Read)) { sFlag = zfText("w+b"); } else { sFlag = zfText("wb"); } } else if(ZFBitTest(flag, ZFFileOpenOption::e_Write)) { if(ZFBitTest(flag, ZFFileOpenOption::e_Read)) { sFlag = zfTextA("r+b"); } else { sFlag = zfTextA("wb"); } } else if(ZFBitTest(flag, ZFFileOpenOption::e_Read)) { sFlag = zfTextA("rb"); } else { zfCoreCriticalShouldNotGoHere(); return ZFFileTokenInvalid; } #if ZF_ENV_sys_Windows zfstringW _filePathSaved = ZFStringZ2W(filePath); DWORD _fileAttrSaved = ::GetFileAttributesW(_filePathSaved.cString()); ::SetFileAttributesW(_filePathSaved.cString(), FILE_ATTRIBUTE_NORMAL); #endif ZFFileToken ret = (ZFFileToken)(::fopen(ZFStringZ2A(filePath), sFlag)); #if ZF_ENV_sys_Windows ::SetFileAttributesW(_filePathSaved.cString(), _fileAttrSaved); #endif return ret; }