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

📄 hxsym_dprintf.cpp

📁 linux下的一款播放器
💻 CPP
字号:
/***************************************************************************** * hxsym_log_util.cpp * --------------- * * * Target: * Symbian OS * * * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved. * *****************************************************************************/// Symbian includes... #include <e32base.h>#include <e32def.h>#include <e32svr.h>#include <string.h>#include <stdarg.h>#include "safestring.h"#include "hxtypes.h"#include "hxtime.h"#include "hxassert.h"#include "hxsym_console_util.h"#include "hxsym_dprintf.h"#if !defined (HELIX_FEATURE_DPRINTF)#error file should not be included in build#endifnamespace{// called by dprintfvoid dprintfHelper(const char* fmt, va_list args){     const UINT32 BUF_SIZE = 4096;    CHXString str;    char *pszBuf = str.GetBuffer(BUF_SIZE);    if (!pszBuf)    {	return;    }    TInt idxBuf = 0;    DPrintfData* pData = dprintfGetData();    if (!pData)    {        return;    }    //    // print dprint header    //    // get date and time (assume we'll be printing)    HXTime now;    gettimeofday(&now, 0);    struct tm* tm = localtime((const time_t *)&now.tv_sec);    if(pData->printFlags & PRINT_DATE)    {        idxBuf += strftime(pszBuf + idxBuf, BUF_SIZE - idxBuf, "%d-%b-%y ", tm);    }    if(pData->printFlags & PRINT_TIME)    {        if(pData->printFlags & PRINT_TIME_INCLUDE_MS)        {            idxBuf += strftime(pszBuf + idxBuf, BUF_SIZE - idxBuf, "%H:%M:%S", tm);            idxBuf += SafeSprintf(pszBuf + idxBuf, BUF_SIZE - idxBuf, ":%03lu ", now.tv_usec/1000);        }        else        {            idxBuf += strftime(pszBuf + idxBuf, BUF_SIZE - idxBuf, "%H:%M:%S ", tm);        }    }    if(pData->printFlags & PRINT_TID)    {        TThreadId tid = RThread().Id();        idxBuf += SafeSprintf(pszBuf + idxBuf, BUF_SIZE - idxBuf, "(%d) ", tid);    }    //    // print text    //    HX_ASSERT(BUF_SIZE - idxBuf > 0);    vsnprintf(pszBuf + idxBuf, BUF_SIZE - idxBuf, fmt, args);    CHXString strName = pData->sinkName;    if(!strName.IsEmpty())    {        if( 0 == strName.CompareNoCase("console") )        {            // send to console            PrintConsole(pszBuf);        }        else        {            // send to logfile            FILE* file = fopen(strName, "a+");            if( file )            {                fprintf(file, pszBuf);                fclose(file);            }        }    } }} // localsstatic void destroyDPrintfData(void* pObj){    DPrintfData* pData = (DPrintfData*)pObj;    delete pData;}DPrintfData* dprintfGetData(){    static const INT32 key = 0;    HXGlobalManager* pGM = HXGlobalManager::Instance();    DPrintfData** ppData = reinterpret_cast<DPrintfData**>(pGM->Get(&key));    DPrintfData* pRet = NULL;        if (!ppData)    {	pRet = new DPrintfData();	if (pRet)	{	    pGM->Add(&key, pRet, &destroyDPrintfData);	}    }    else    {	pRet = *ppData;    }    return pRet;}UINT32& debug_level(){    return dprintfGetData()->mask;}UINT32& debug_func_level(){    return dprintfGetData()->funcTraceMask;}UINT32 dprintfGetMask(){    UINT32 mask = 0;    DPrintfData* pData = dprintfGetData();    if( pData )    {        mask = pData->mask;    }    return mask;}//// called by DPRINTF macro//void dprintf(const char* fmt, ...){    va_list args;    va_start(args, fmt);    dprintfHelper(fmt, args);    va_end(args);}

⌨️ 快捷键说明

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