Exemple #1
0
BOOL KTrackList::Save()
{
    BOOL        bResult     = false;
    int         nRetCode    = 0;
    ITabFile*   piTabFile   = NULL;
    int         nLine       = 0;
    char        szFileName[MAX_PATH];

    snprintf(szFileName, sizeof(szFileName), "%s/%s/track.tab", SETTING_DIR, TRACK_DIR);
    szFileName[sizeof(szFileName) - 1] = '\0';

    piTabFile = g_CreateTabFile();
    KGLOG_PROCESS_ERROR(piTabFile);

    nRetCode = piTabFile->InsertNewCol(COL_ID);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nRetCode = piTabFile->InsertNewCol(COL_MAP);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nRetCode = piTabFile->InsertNewCol(COL_DESC);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nLine = 2;

    for (KTRACK_TABLE::iterator it = m_TrackTable.begin(); it != m_TrackTable.end(); ++it)
    {
        DWORD           dwID        = it->first;
        KTRACK_INFO*    pTrackInfo  = &it->second;
        
        nRetCode = piTabFile->WriteInteger(nLine, COL_ID, dwID);
        KGLOG_PROCESS_ERROR(nRetCode);

        nRetCode = piTabFile->WriteInteger(nLine, COL_MAP, pTrackInfo->dwMapID);
        KGLOG_PROCESS_ERROR(nRetCode);

        nRetCode = piTabFile->WriteString(nLine, COL_DESC, pTrackInfo->szDesc);
        KGLOG_PROCESS_ERROR(nRetCode);

        nRetCode = SaveTrack(dwID, pTrackInfo->Track);
        KGLOG_PROCESS_ERROR(nRetCode);

        nLine++;
    }

    nRetCode = piTabFile->Save(szFileName);
    KGLOG_PROCESS_ERROR(nRetCode);

    bResult = true;
Exit0:
    KG_COM_RELEASE(piTabFile);
    return bResult;
}
Exemple #2
0
BOOL KTrackList::SaveTrack(DWORD dwID, const KTRACK& crTrack)
{
    BOOL        bResult     = false;
    int         nRetCode    = 0;
    ITabFile*   piTabFile   = NULL;
    int         nLineIndex  = 0;
    char        szFileName[MAX_PATH];

    snprintf(szFileName, sizeof(szFileName), "%s/%s/track%u.tab", SETTING_DIR, TRACK_DIR, dwID);
    szFileName[sizeof(szFileName) - 1] = '\0';

    piTabFile = g_CreateTabFile();
    KGLOG_PROCESS_ERROR(piTabFile);

    nRetCode = piTabFile->InsertNewCol(COL_X);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nRetCode = piTabFile->InsertNewCol(COL_Y);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nRetCode = piTabFile->InsertNewCol(COL_Z);
    KGLOG_PROCESS_ERROR(nRetCode != -1);

    nLineIndex = 2;

    for (KTRACK::const_iterator it = crTrack.begin(); it != crTrack.end(); ++it)
    {
        nRetCode = piTabFile->WriteInteger(nLineIndex, COL_X, it->nX);
        KGLOG_PROCESS_ERROR(nRetCode);

        nRetCode = piTabFile->WriteInteger(nLineIndex, COL_Y, it->nY);
        KGLOG_PROCESS_ERROR(nRetCode);

        nRetCode = piTabFile->WriteInteger(nLineIndex, COL_Z, it->nZ);
        KGLOG_PROCESS_ERROR(nRetCode);

        nLineIndex++;
    }

    nRetCode = piTabFile->Save(szFileName);
    KGLOG_PROCESS_ERROR(nRetCode);

    bResult = true;
Exit0:
    KG_COM_RELEASE(piTabFile);
    return bResult;
}
int Jx3RoleItemCompensateToActivityTable::Run()
{
    int nResult  = false;
    int nRetCode = false;

    ITabFile*       piErrorTabFile          = NULL;
    int             nErrorTabFileInitFlag   = false;
    int             nErrorCount             = 0;
    //char            szBuffer[2048];
    char*           pszPos                  = NULL;
    //size_t          uLeftBufferSize         = 2048;

    char       szErrorFileName[FILENAMELEN];

    int         nStrLen         = 0;
    time_t      lStartTime      = 0;
    struct tm*  ptmTime         = NULL;
    time_t      lStopTime       = 0;
    unsigned    uRunningSeconds = 0;

    lStartTime = time(NULL);
    ptmTime = localtime(&lStartTime);
    KG_PROCESS_ERROR(ptmTime);

    nStrLen = snprintf(szErrorFileName,
        sizeof(szErrorFileName),
        "%s_%d_%d_%d_%d%d%d.tab", 
        KG_ERRORSERVERLISTFILE,
        ptmTime->tm_year + 1900, 
        ptmTime->tm_mon + 1, 
        ptmTime->tm_mday,
        ptmTime->tm_hour, 
        ptmTime->tm_min, 
        ptmTime->tm_sec
    );
    KGLOG_PROCESS_ERROR(nStrLen > 0 && nStrLen < (int)sizeof(szErrorFileName));

    nRetCode = fputs("Logserver名称\t区服中文名\t角色名\tValue0\tValue1\tValue2\tValue3\tValue4\tValue5\n", m_pOutFile);
    KGLOG_PROCESS_ERROR(nRetCode != EOF);

    //nRetCode = fputs("Logserver名称\t区服中文名\t角色名\tValue0\tValue1\tValue2\tValue3\tValue4\tValue5", m_pOutFile);
    //KGLOG_PROCESS_ERROR(nRetCode != EOF);

    //memset(szBuffer,'\0', sizeof(szBuffer));
    //pszPos = szBuffer;

    //for (int i = 0; i < m_CompensateItemList.size(); i++)
    //{
    //    nRetCode = snprintf(
    //        pszPos, uLeftBufferSize, "\t%s", m_CompensateItemList[i].szItemName
    //    );
    //    KGLOG_PROCESS_ERROR(nRetCode > 0 && nRetCode < (int)uLeftBufferSize);
    //    pszPos          += nRetCode;
    //    uLeftBufferSize -= nRetCode;
    //}

    //szBuffer[sizeof(szBuffer) - 1] = '\0';
    //nRetCode = fputs(szBuffer, m_pOutFile);
    //KGLOG_PROCESS_ERROR(nRetCode != EOF);

    //nRetCode = fputs("\n", m_pOutFile);
    //KGLOG_PROCESS_ERROR(nRetCode != EOF);

    for (int i = 0; i < m_ServerList.size(); i++)
    {
        lStartTime = time(NULL);
        ptmTime = localtime(&lStartTime);
        KG_PROCESS_ERROR(ptmTime);

        KGLogPrintf(
            KGLOG_INFO, 
            "Analyze %s ::Start Time: %d-%d-%d %d:%d:%d\n",
            m_ServerList[i].szServerName,
            ptmTime->tm_year + 1900, 
            ptmTime->tm_mon + 1, 
            ptmTime->tm_mday,
            ptmTime->tm_hour, 
            ptmTime->tm_min, 
            ptmTime->tm_sec
        );

        nRetCode = Analyze(m_ServerList[i], "role");
        if (!nRetCode)
        {
            KGLogPrintf(
                KGLOG_INFO, 
                "Analyze %s Error",m_ServerList[i].szServerName
            );

            if (!nErrorTabFileInitFlag)
            {
                piErrorTabFile = g_CreateTabFile();
                KGLOG_PROCESS_ERROR(piErrorTabFile);
                nErrorTabFileInitFlag = true;

                nRetCode = piErrorTabFile->InsertNewCol("ZoneName");
                KGLOG_PROCESS_ERROR(nRetCode);

                nRetCode = piErrorTabFile->InsertNewCol("ServerName");
                KGLOG_PROCESS_ERROR(nRetCode);

                nRetCode = piErrorTabFile->InsertNewCol("LogServerName");
                KGLOG_PROCESS_ERROR(nRetCode);

                nRetCode = piErrorTabFile->InsertNewCol("BackUpFilePath");
                KGLOG_PROCESS_ERROR(nRetCode);
            }

            nRetCode = piErrorTabFile->WriteString(nErrorCount + 2, "ZoneName", m_ServerList[i].szZoneName);
            KGLOG_PROCESS_ERROR(nRetCode);

            nRetCode = piErrorTabFile->WriteString(nErrorCount + 2, "ServerName", m_ServerList[i].szServerName);
            KGLOG_PROCESS_ERROR(nRetCode);

            nRetCode = piErrorTabFile->WriteString(nErrorCount + 2, "LogServerName", m_ServerList[i].szLogServerName);
            KGLOG_PROCESS_ERROR(nRetCode);

            nRetCode = piErrorTabFile->WriteString(nErrorCount + 2, "BackUpFilePath", m_ServerList[i].szBackUpFilePath);
            KGLOG_PROCESS_ERROR(nRetCode);

            nErrorCount++;

            m_ErrorServerList.push_back(m_ServerList[i]);
        }

        lStopTime = time(NULL);
        ptmTime = localtime(&lStopTime);
        KGLOG_PROCESS_ERROR(ptmTime);

        KGLogPrintf(
            KGLOG_INFO, 
            "Analyze %s ::Stop Time: %d-%d-%d %d:%d:%d\n",
            m_ServerList[i].szServerName,
            ptmTime->tm_year + 1900, 
            ptmTime->tm_mon + 1, 
            ptmTime->tm_mday,
            ptmTime->tm_hour, 
            ptmTime->tm_min, 
            ptmTime->tm_sec
       );

       uRunningSeconds = (unsigned)(lStopTime - lStartTime);
       KGLogPrintf(
            KGLOG_INFO,
            "Analyze %s Running Time: %d days ,%d hours ,%d minutes, %d seconds.\n", 
            m_ServerList[i].szServerName,
            (uRunningSeconds / (60 * 60 * 24)),
            ((uRunningSeconds % (60 * 60 * 24)) / (60 * 60)),
            ((uRunningSeconds % (60 * 60)) / 60),
            (uRunningSeconds % 60)
       );
    }

    nResult = true;
Exit0:
    if (nErrorTabFileInitFlag)
    {
        KG_COM_RELEASE(piErrorTabFile);
        nErrorTabFileInitFlag = false;
    }
    return nResult;
}