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

📄 ctempfilemanager.cpp

📁 Mysql的处理
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			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 + -