cdrwriteasndecode.cpp
来自「Mysql的处理」· C++ 代码 · 共 466 行
CPP
466 行
#include "CDRWriteASNDecode.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>using namespace std;#include "Base64.h"C_CDRWriteASNDecode::C_CDRWriteASNDecode(){}C_CDRWriteASNDecode::~C_CDRWriteASNDecode(){}/** OSCDR*/ bool C_CDRWriteASNDecode::InsertSCDR(S_OSCDR* pCDR, S_LCLOC* pChanageLoc, int nChangeLoc, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OSCDR%s", szTableDate); if((result = DbOSCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; }// snprintf(pCDR->SeqId, LEN_SEQ+1, "%s",m_Out.SeqId); char szSeqId[LEN_SEQ+1]; snprintf(szSeqId, LEN_SEQ+1, "%s", pCDR->SeqId); for(i=0;i<nLOTV;i++) { snprintf(pLOTV[i].TableName, LEN_TABLENAME+1, "LLOTV_OS%s", szTableDate); snprintf(pLOTV[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLLOTVInsert(&pLOTV[i], &m_Out)) != SQL_OK) { return false; } }/* for(i=0;i<nCommon;i++) { snprintf(pCommon[i].TableName, LEN_TABLENAME+1, "LCOMM_OS%s", szTableDate); snprintf(pCommon[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLCOMMInsert(&pCommon[i], &m_Out)) != SQL_OK) { return false; } }*/ return Commit();}bool C_CDRWriteASNDecode::InsertGCDR(S_OGCDR* pCDR, S_LCLOC* pChanageLoc, int nChangeLoc, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OGCDR%s", szTableDate); if((result = DbOGCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; }// snprintf(pCDR->SeqId, LEN_SEQ+1, "%s",m_Out.SeqId); char szSeqId[LEN_SEQ+1]; snprintf(szSeqId, LEN_SEQ+1, "%s", pCDR->SeqId); for(i=0;i<nLOTV;i++) {// snprintf(pCDR->TableName, LEN_TABLENAME+1, "LLOTV_OG%s", szTableDate); snprintf(pLOTV[i].TableName, LEN_TABLENAME+1, "LLOTV_OG%s", szTableDate); snprintf(pLOTV[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLLOTVInsert(&pLOTV[i], &m_Out)) != SQL_OK) { return false; } } for(i=0;i<nCommon;i++) {// snprintf(pCDR->TableName, LEN_TABLENAME+1, "LCOMM_OG%s", szTableDate); snprintf(pCommon[i].TableName, LEN_TABLENAME+1, "LCOMM_OG%s", szTableDate); snprintf(pCommon[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLCOMMInsert(&pCommon[i], &m_Out)) != SQL_OK) { return false; } } return Commit();}/*bool C_CDRWriteASNDecode::InsertGCDR(S_OGCDR* pCDR, S_LCBC* pCBC, int nCBC, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OGCDR%s", szTableDate); if((result = DbOGCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; } char szSeqId[LEN_SEQ+1]; snprintf(szSeqId, LEN_SEQ+1, "%s", pCDR->SeqId); for(i=0;i<nLOTV;i++) { snprintf(pLOTV[i].TableName, LEN_TABLENAME+1, "LLOTV_OG%s", szTableDate); snprintf(pLOTV[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLLOTVInsert(&pLOTV[i], &m_Out)) != SQL_OK) { return false; } } for(i=0;i<nCommon;i++) { snprintf(pCommon[i].TableName, LEN_TABLENAME+1, "LCOMM_OG%s", szTableDate); snprintf(pCommon[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLCOMMInsert(&pCommon[i], &m_Out)) != SQL_OK) { return false; } } for(i=0;i<nCBC;i++) { snprintf(pCBC[i].TableName, LEN_TABLENAME+1, "LCBC_OG%s", szTableDate); snprintf(pCBC[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLCBCInsert(&pCBC[i])) != SQL_OK) { return false; } for(int j=0;j<pCBC[i].nLLCBC;j++) { } } return Commit();}*/bool C_CDRWriteASNDecode::InsertMCDR(S_OMCDR* pCDR, S_LCLOC* pChanageLoc, int nChangeLoc, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OMCDR%s", szTableDate); if((result = DbOMCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; }// snprintf(pCDR->SeqId, LEN_SEQ+1, "%s",m_Out.SeqId); char szSeqId[LEN_SEQ+1]; snprintf(szSeqId, LEN_SEQ+1, "%s", pCDR->SeqId); for(i=0;i<nChangeLoc;i++) {// snprintf(pCDR->TableName, LEN_TABLENAME+1, "LCLOC_OM%s", szTableDate); snprintf(pChanageLoc[i].TableName, LEN_TABLENAME+1, "LCLOC_OM%s", szTableDate); snprintf(pChanageLoc[i].SeqId, LEN_SEQ+1,"%s", szSeqId); if((result = DbLCLOCInsert(&pChanageLoc[i], &m_Out)) != SQL_OK) { return false; } } return Commit();}bool C_CDRWriteASNDecode::InsertMOCDR(S_OMOCDR* pCDR, S_LCLOC* pChanageLoc, int nChangeLoc, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OMOCDR%s", szTableDate); if((result = DbOMOCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; }// snprintf(pCDR->SeqId, LEN_SEQ+1, "%s",m_Out.SeqId); return Commit();}bool C_CDRWriteASNDecode::InsertMTCDR(S_OMTCDR* pCDR, S_LCLOC* pChanageLoc, int nChangeLoc, S_LLOTV* pLOTV, int nLOTV, S_LCOMM* pCommon, int nCommon, int nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 char szTableDate[10], char pOutSzSeqId[21]){ int i; int result; snprintf(szTableDate, 20, "%s", GetSysdate()); snprintf(pCDR->TableName, LEN_TABLENAME+1, "OMTCDR%s", szTableDate); if((result = DbOMTCDRInsert(pCDR, &m_Out)) != SQL_OK) { return false; }// snprintf(pCDR->SeqId, LEN_SEQ+1, "%s",m_Out.SeqId); return Commit();}bool C_CDRWriteASNDecode::InsertASNERROR(const char* inSzContent, int inILength, const char* inSzGsnId, int inICause, const char* inSzGtpId, const char* inSzGtpName){ //1.记录类型 m_In.RecordType=0; //2.内容编码 memset(m_szDest, 0, 4000); int iBase64Len = base64_encode(m_szDest, inSzContent, inILength); memcpy(&m_In.Content, m_szDest, iBase64Len); m_In.Content[iBase64Len]=0; //3.被操作的表名字 ASNERROR_ snprintf(m_In.TableName, LEN_TABLENAME+1, "ASNERROR_%s", GetSysdate()); //4.出错原因 m_In.Cause=inICause; //5.网关编号 snprintf(m_In.GsnId, LEN_GSNID+1, "%s", inSzGsnId); //6.GTPID snprintf(m_In.GtpId, LEN_SEQ+1, "%s", inSzGtpId); //7.GTPNAME snprintf(m_In.GtpName, LEN_TABLENAME+1, "%s", inSzGtpName); int res = DbASNERRORInsert(&m_In, &m_Out); return Commit();} void C_CDRWriteASNDecode::Test(){ S_OSCDR pCDR1; S_OGCDR pCDR2; S_OMCDR pCDR3; S_OMOCDR pCDR4; S_OMTCDR pCDR5; S_LCLOC pChanageLoc; S_LLOTV pLOTV; S_LCOMM pCommon; int nFlagR4V99=0; char pOutSzTableDate[10]; char pOutSzSeqId[21]; int nChangeLoc=1; int nLOTV=1; int nCommon=1; memset(&pCDR1,0,sizeof(pCDR1)); memset(&pCDR2,0,sizeof(pCDR2)); memset(&pCDR3,0,sizeof(pCDR3)); memset(&pCDR4,0,sizeof(pCDR4)); memset(&pCDR5,0,sizeof(pCDR5)); memcpy(pCDR2.RecordOpenTime, "19991010194400",14); memset(&pChanageLoc,0,sizeof(pChanageLoc)); memset(&pLOTV,0,sizeof(pLOTV)); memset(&pCommon,0,sizeof(pCommon)); for(int i=0;i<2;i++) {/* FILE* fp = fopen("qq.txt", "a"); char* pp = (char*)&pCDR1; fprintf(fp, "\n"); for(int j=0;j<sizeof(S_OSCDR);j++) { fprintf(fp,"%02x ", (unsigned char)pp[i]); if(j%10 == 0) { fprintf(fp, "\n"); } } fprintf(fp, "\n"); fclose(fp);*/ /* InsertGCDR(&pCDR2, &pChanageLoc, nChangeLoc, &pLOTV, nLOTV, &pCommon, nCommon, nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 pOutSzTableDate, pOutSzSeqId);*/ memcpy(pCDR1.CallDuration,"123",3); memcpy(pCDR1.AccessPointNameNI,"TTTTTTTTTTTTTTTTTT123",3); InsertSCDR(&pCDR1, &pChanageLoc, 1,//nChangeLoc, &pLOTV, 1,//nLOTV, &pCommon, 1,//nCommon, 0,//nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 pOutSzTableDate, pOutSzSeqId);/* memcpy(pCDR3.CallDuration,"123",3); InsertMCDR(&pCDR3, &pChanageLoc, nChangeLoc, &pLOTV, nLOTV, &pCommon, nCommon, nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 pOutSzTableDate, pOutSzSeqId); InsertMOCDR(&pCDR4, &pChanageLoc, nChangeLoc, &pLOTV, nLOTV, &pCommon, nCommon, nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 pOutSzTableDate, pOutSzSeqId); memcpy(pCDR5.ServedIMEI,"123",3); memcpy(pCDR5.ServedIMSI,"12321",5); InsertMTCDR(&pCDR5, &pChanageLoc, nChangeLoc, &pLOTV, nLOTV, &pCommon, nCommon, nFlagR4V99, //0 - normal ; 1 - R4 ; 2- R99 pOutSzTableDate, pOutSzSeqId);*/ InsertASNERROR("1222", 2, "2", 1, "1", "222"); }} void C_CDRWriteASNDecode::Test2(){ char Table[31]; char SeqId[21]; for(int i=0;i<10000;i++) { Insert("222", 3, "1", 0, 0xFFFFFFFF, 0xFFFFFFFF);//, NULLTable, SeqId); //printf("%s %s\n",Table ,SeqId); }}bool C_CDRWriteASNDecode::Insert( const char* inSzContent, long inILength, const char* inSzGsnId, bool inBflagCancel, long inIPeerIp, long inIPeerSeqId, char outSzTableName[31], char outSzSeqId[21]){ //1.记录类型/* m_In2.RecordType=0; //2.内容编码 memset(m_szDest, 0, 4000); int iBase64Len = base64_encode(m_szDest, inSzContent, inILength); memcpy(&m_In2.Content, m_szDest, iBase64Len); m_In2.ContentLength = iBase64Len; //3.被操作的表名字 snprintf(m_In2.TableName, LEN_TABLENAME+1, "OTT"); //4.是否取消 m_In2.FlagCancel=inBflagCancel; //5.网关编号 memcpy(m_In2.GsnId, inSzGsnId, strlen(inSzGsnId)); //6.peerip m_In2.PeerIp = inIPeerIp; //7.peerseq m_In2.PeerSeqId = inIPeerSeqId; int res = DbGTPInsert2(&m_In2, &m_Out); if(res == 0 && outSzSeqId != NULL && outSzTableName != NULL) { snprintf(outSzSeqId, LEN_SEQ+1, "%s", m_Out.SeqId); snprintf(outSzTableName, LEN_TABLENAME+1, "%s", m_Out.TableName); } return res == 0; */ return true;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?