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

📄 scdrfiltration.cpp

📁 Mysql的处理
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#ifdef EXT10os    if ( 2 == pOSCdr->SystemType )    {         writer.AddUserInteger("GMCC-SCDR.chChSelectionMode", pOSCdr->ChargingCharacterSelectionMode);//INT    }#endif    writer.AddUserBool("GMCC-SCDR.dynamicAddressFlag", pOSCdr->DynamicAddressFlag);//BOOL  }  writer.End();    printf("*********writer asn1 encode end*******\n");  return;}// SCdr话单过滤类的定义// 从配置文件中读取过滤规则C_SCdrFiltration::C_SCdrFiltration(CTempFileManager* pTFManager) : m_pTFManager(pTFManager){	strcpy(m_GgsnAddr, GGSN_ADDRESS);	strcpy(m_SgsnAddr, SGSN_ADDRESS);	// 过滤条件数据	m_FilterRecordType = 18;	m_FilterNetworkInitiatedPDPContext = 100;  m_FilterServedIMSI;  m_FilterServedIMEI; 	m_FilterMSNetworkCapability;	m_FilterRoutingAreaCode;	m_FilterLocationAreaCode;	m_FilterCellIdentity;	m_FilterChargingID;	m_FilterAccessPointNameNI;	m_FilterPDPTypeNumber;	m_FilterServedPDPAddress;	m_FilterRecordOpenTime;	m_FilterDiagnostics;	m_FilterAPNSelectionMode;	m_FilterAccessPointNameOI;  	m_FilterServedMSISDN;	m_FilterChargingCharacteristics;	m_FilterConsolidationResult;	m_FilterChargingCharacterSelectionMode;  m_FilterSCFAddress;  m_FilterServiceKey;  m_FilterDefaultTransacHandling;  m_FilterCAMELAPNNI;  m_FilterCAMELAPNOI;  m_FilterNumberOfDPEncounter;  m_FilterLevelOfCamelService;  m_FilterFreeFormatData;  m_FilterFFDAppendIndicator;  m_FilterDefaultSMSHandling;  m_FilterCAMELCallingPartyNumber;  m_FilterCAMELAccessDestinationSubNumber;  m_FilterCAMELSMSAdress;  m_FilterSmsReferenceNumber;	m_FilterDynamicAddressFlag;  m_FilterAPNOperatorIdentifier;	m_FilterAnonyAccessIndicator;	m_FilterSystemType;  m_FilterSGSNChange;	m_FilterCauseForRecClosing;	m_FilterRecordSequenceNumber;	m_FilterNodeID;	m_FilterLocalRecordSequeceNumnber;	m_FilterUnsentDownlinkVolume;	m_FilterRecordExtensions;	m_vecBsFilterInfo.clear();}C_SCdrFiltration::~C_SCdrFiltration(){	m_vecBsFilterInfo.clear();	m_pTFManager = NULL;}// 从配置文件中读取过滤条件bool C_SCdrFiltration::GetFiltrationRuleFromConfigFile(){	CConfigXml	configxml;	if(!configxml.Load(FILE_NAME_OF_CONFIG))	{		printf("error in configure file.\n");		return false;	}		bool bResult = false;	sFilterInfo sInfo;	string strTemp = "";	char cPath[LEN_OF_MSG_REF];	char cTemp[LEN_OF_MSG_REF];		VECBS vecBs;	m_pTFManager->GetBsVec(SCDR, &vecBs);		for (short i=0; i < vecBs.size(); i++)	{		memset(cPath, 0, sizeof(cPath));		if (vecBs.at(i) == SHORT_BS)		{			sprintf(cPath, "%s.%s", CONF_PATH, STRING_BS);		}		else if(vecBs.at(i) == SHORT_BS2)		{			sprintf(cPath, "%s.%s", CONF_PATH, STRING_BS2);		}		else		{			sprintf(cPath, "%s.%s", CONF_PATH, STRING_BS3);		}		strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_NEED_CDR_HEADER);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_NeedCDRHeader = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_NeedCDRHeader = false;		}		strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILTER_BYUPDATAVOL);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByUpDataVol = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByUpDataVol = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_VALUE_DATAVOL_UP);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strlen(strTemp.c_str()) > 0)		{			sInfo.m_UpDataVolLimit = atoi(strTemp.c_str());		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_FILTER_BYDOWNDATAVOL);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByDownDataVol = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByDownDataVol = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_VALUE_DATAVOL_DOWN);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strlen(strTemp.c_str()) != 0)		{			sInfo.m_DownDataVolLimit = atoi(strTemp.c_str());		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_FILTER_BYDURATION);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByDuration = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByDuration = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_VALUE_DURATION);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strlen(strTemp.c_str()) != 0)		{			sInfo.m_DurationLimit = atoi(strTemp.c_str());		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILTERBYGGSNADDR);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByGgsnAddr = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByGgsnAddr = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_VALUE_GGSNADDR);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strlen(strTemp.c_str()) != 0)		{			strcpy(sInfo.m_GgsnAddr, strTemp.c_str());		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILTERBYSGSNADDR);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateBySgsnAddr = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateBySgsnAddr = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_VALUE_SGSNADDR);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strlen(strTemp.c_str()) != 0)		{			strcpy(sInfo.m_SgsnAddr, strTemp.c_str());		}						// 过滤条件补充		// 过滤条件开关		strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_RECORDTYPE);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByRecordType = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByRecordType = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_NETWORKINITIATEDPDPCONTEXT);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByNetworkInitiatedPDPContext = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByNetworkInitiatedPDPContext = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_SERVEDIMSI);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByServedIMSI = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByServedIMSI = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_SERVEDIMEI);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByServedIMEI = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByServedIMEI = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_MSNETWORKCAPABILITY);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByMSNetworkCapability = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByMSNetworkCapability = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_ROUTINGAREACODE);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByRoutingAreaCode = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByRoutingAreaCode = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_LOCATIONAREACODE);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByLocationAreaCode = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByLocationAreaCode = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_CELLIDENTITY);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByCellIdentity = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByCellIdentity = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_CHARGINGID);		bResult = configxml.GetValue(cTemp, strTemp);		if (bResult && strcmp(strTemp.c_str(), "true") == 0)		{			sInfo.m_IsFiltrateByChargingID = true;		}		else if (bResult && strcmp(strTemp.c_str(), "false") == 0)		{			sInfo.m_IsFiltrateByChargingID = false;		}				strTemp = "";		memset(cTemp, 0, sizeof(cTemp));		sprintf(cTemp, "%s.%s", cPath, CONF_ISFILT_BY_ACCESSPOINTNAMENI);

⌨️ 快捷键说明

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