📄 ctempfilemanager.cpp
字号:
printf("\n*****pthread_mutex_unlock(&m_ResetSerialMutex) %s CreateTempFile Start *****\n", sCdrInfo.strCdr.c_str()); //释放锁 pthread_mutex_unlock( &m_ResetSerialMutex ); printf("\n*****pthread_mutex_unlock(&m_ResetSerialMutex) %s CreateTempFile End *****\n", sCdrInfo.strCdr.c_str()); } #else { //释放锁 pthread_mutex_unlock( &m_ResetSerialMutex ); } #endif } //sleep(1); return bRet;}/***********************************************************************Function Name: GetBsVec*Sescription: 根据传入的cdr获得VECBS,默认是一个bs*Input: [const string&] 5种存储方式对应的宏* [VECBS*] bs的信息*Output: NONE*Remark: **********************************************************************/void CTempFileManager::GetBsVec(const string& strCdr, VECBS* vecBs){ vecBs->clear(); //得到三种存储方式对应的宏 string strTemp = getCdrStringFromMacro(strCdr); map<string, VECBS>::iterator mapIte; mapIte = m_mapCdrBsInfo.find(strTemp); if (mapIte != m_mapCdrBsInfo.end()) { *vecBs = mapIte->second; }}/***********************************************************************Function Name: getConfig*Sescription: 从配置文件中获取CDR文件输出策略*Input: NONE*Output: [bool] true--读取成功; false--读取失败*Remark: **********************************************************************/bool CTempFileManager::getConfig(){ CConfigXml configxml; if(!configxml.Load(FILE_NAME_OF_CONFIG)) { printf("error in configure file.\n"); return false; } bool bResult = false; // CDR文件输出策略 string cTemp = ""; bResult = configxml.GetValue(CONF_ISSAVEONEFILE, cTemp); if (bResult && cTemp.length() > 0) { m_nSaveUpFileType = atoi(cTemp.c_str()); } cTemp = ""; bool bIsTimeInterval = false; bResult = configxml.GetValue(CONF_ISTIME_INTERVAL, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { bIsTimeInterval = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { bIsTimeInterval = false; } cTemp = ""; bool bIsFileSize = false; bResult = configxml.GetValue(CONF_ISFILESIZE, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { bIsFileSize = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { bIsFileSize = false; } cTemp = ""; bool bIsCdrNum = false; bResult = configxml.GetValue(CONF_ISCDR_NUM, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { bIsCdrNum = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { bIsCdrNum = false; } //当三种开关都关闭时,取默认值:时间为5分钟;大小为5M;数量为6000个 if (bIsTimeInterval || bIsFileSize || bIsCdrNum) { if (bIsTimeInterval) { m_bIsTimeInterval = true; cTemp = ""; bResult = configxml.GetValue(CONF_TIMELIMIT_OFCDRSAVE, cTemp); if (bResult && cTemp.length() > 0) { m_nTimeLimitOfCdrSavedForTransferFile = atol(cTemp.c_str()); } } else { m_bIsTimeInterval = false; } if (bIsFileSize) { m_bIsFileSize = true; cTemp = ""; bResult = configxml.GetValue(CONF_SIZELIMIT_OFCDRSAVE, cTemp); if (bResult && cTemp.length() > 0) { m_nSizeLimitOfCdrSavedForTransferFile = atol(cTemp.c_str()); } } else { m_bIsFileSize = false; } if (bIsCdrNum) { m_bIsCdrNum = true; cTemp = ""; bResult = configxml.GetValue(CONF_NUMLIMIT_OFCDRSAVE, cTemp); if (bResult && cTemp.length() > 0) { m_nNumLimitOfCdrSavedForTransferFile = atoi(cTemp.c_str()); } } else { m_bIsCdrNum = false; } } // CDR文件命名规范 cTemp = ""; bResult = configxml.GetValue(CONF_ISSERIALNUM_TOZERO, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { m_bIsSerialNumToZero = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { m_bIsSerialNumToZero = false; } cTemp = ""; bResult = configxml.GetValue(CONF_ISSERIALNUM_FIXED, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { m_bIsSerialNumFixed = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { m_bIsSerialNumFixed = false; } cTemp = ""; bResult = configxml.GetValue(CONF_IS_CLOSE_TIMESTAMP, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { m_bIsCloseTimestamp = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { m_bIsCloseTimestamp = false; } cTemp = ""; bResult = configxml.GetValue(CONF_IS_HAVE_FILEHEADER, cTemp); if (bResult && !strcmp(cTemp.c_str(), "true")) { m_bIsHaveFileHeader = true; } else if (bResult && !strcmp(cTemp.c_str(), "false")) { m_bIsHaveFileHeader = false; } VECBS vecBs; typedef pair<string, VECBS> pairTemp; string bs = ""; bool bIsBs = false; //bs信息 if (m_nSaveUpFileType == EACHCDR) { //GCDR vecBs.clear(); bResult = configxml.GetValue(CONF_EACH_GCDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_EACH_GCDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_EACH_GCDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(GCDR, vecBs)); //MCDR vecBs.clear(); bs = ""; bResult = configxml.GetValue(CONF_EACH_MCDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_EACH_MCDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_EACH_MCDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(MCDR, vecBs)); //SCDR vecBs.clear(); bs = ""; bResult = configxml.GetValue(CONF_EACH_SCDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SCDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SCDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(SCDR, vecBs)); //SMOCDR vecBs.clear(); bs = ""; bResult = configxml.GetValue(CONF_EACH_SMOCDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SMOCDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SMOCDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(SMOCDR, vecBs)); //SMTCDR vecBs.clear(); bs = ""; bResult = configxml.GetValue(CONF_EACH_SMTCDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SMTCDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_EACH_SMTCDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(SMTCDR, vecBs)); } else if(m_nSaveUpFileType == UNIONCDR) { vecBs.clear(); bResult = configxml.GetValue(CONF_UNION_CDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_UNION_CDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_UNION_CDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(CDR, vecBs)); } else { //GGSNCDR vecBs.clear(); bResult = configxml.GetValue(CONF_GGSN_CDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_GGSN_CDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_GGSN_CDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(GGSNCDR, vecBs)); //SGSNCDR vecBs.clear(); bs = ""; bResult = configxml.GetValue(CONF_SGSN_CDR_BS, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS); } bs = ""; bResult = configxml.GetValue(CONF_SGSN_CDR_BS2, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS2); } bs = ""; bResult = configxml.GetValue(CONF_SGSN_CDR_BS3, bs); if (bResult && !strcmp(bs.c_str(), "true")) { bIsBs = true; vecBs.push_back(SHORT_BS3); } if (!bIsBs) { //默认是一个bs vecBs.push_back(SHORT_BS); bIsBs = false; } m_mapCdrBsInfo.insert(pairTemp(SGSNCDR, vecBs)); } //得到三个bs的路径 typedef pair<short, string> pairPath; cTemp = ""; bResult = configxml.GetValue(CONF_BS_PATH, cTemp);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -