📄 putqueue.cpp
字号:
#ifndef INCLUDE_CMCC#include "cmpp.h"#define INCLUDE_CMCC#endifint QUEUE_DELV = 0;#define PROFILE_TEST_PATH "/home/staff/gaop/mobile/etc_test/smg_test.ini"#define MAX_FILENAME_SIZE 256int g_usize_deliver;char* deliverQueue;extern int LEN_SGIP_DELIVER;int genSimDelivery(RecSGIPPacket* packetSrc,char* src_addr, char* dst_addr, char* srv_type, char* short_msg) ;int Init_Profile_delivery ();int SGCC_Init_delv();extern int LEN_SGIP_PACKET;unsigned long seqid_part3 = 0;int Init_Profile_delivery (){ int ret ; char *profile = PROFILE_TEST_PATH ; char buf[80] ; char msg[200] ; char deliverQueueFile[MAX_FILENAME_SIZE]; long semKeyDeliver; int g_umax ;/* +setting up deliver queue (testmode)+ */ ret = GetProFile (profile, "[CMPPDELIVER]", "QMFILE_DELIVER", buf, msg) ; if (ret != 0) { fprintf (stderr, "%s\n", msg) ; return (-1) ; } strncpy (deliverQueueFile, buf, sizeof(deliverQueueFile)-1) ; ret = GetProFile (profile, "[CMPPDELIVER]", "SEM_KEY_DELIVER", buf, msg) ; if (ret != 0) { fprintf (stderr, "%s\n", msg) ; return (-1) ; } semKeyDeliver = atol (buf) ; ret = GetProFile (profile, "[CMPPDELIVER]", "U_SIZE_DELIVER", buf, msg) ; if (ret != 0) { fprintf (stderr, "%s\n", msg) ; return (-1) ; } g_usize_deliver = atoi (buf) ; if (g_usize_deliver <= 4) { fprintf (stderr, "queue element size too small(%d).\n", g_usize_deliver) ; return (-1) ; } ret = GetProFile (profile, "[CMPPDELIVER]", "U_MAX_DELIVER", buf, msg) ; if (ret != 0) { fprintf (stderr, "%s\n", msg) ; return (-1) ; } g_umax = atoi (buf) ; if (g_umax <= 10) { fprintf (stderr, "the number of elements too small(%d).\n", g_umax) ; return (-1) ; } deliverQueue = InitialQueue (deliverQueueFile, g_usize_deliver, g_umax, semKeyDeliver) ; if (deliverQueue == NULL) { fprintf (stderr, "InitialQueue(%s) 'deliverQueue' fail\n", deliverQueueFile) ; return (-3) ; }/* -setting up deliver queue (testmode)- */ return (0) ;}////////////////////////////////////////////////////////////////int SGCC_Init_delv(){ int rtn; rtn = Init_Profile_delivery(); if (rtn != 0) { fprintf (stderr, "Init_Profile() fail.\n") ; return (-1) ; } initLen(); return 0;}int genSimDelivery(RecSGIPPacket* packetSrc,char* src_addr, char* dst_addr, char* srv_type, char* short_msg) { SGIP_MsgBody proto;/* cmppe_deliver p; p.pk_sm.sm_rpt.final_date .status_rpt .src_addr .dst_addr .svc_type .sm_len .proto_id .pk_sm.sm_rpt .pk_sm.short_msg .priority .data_coding*/ static int seqNo = 1; RecSGIPPacket *packet; packet = (RecSGIPPacket*)packetSrc; memset(&proto,0,LEN_SGIP_DELIVER); initialize_msgbody(&proto,SGIP_DELIVER); strcpy(proto.SGIP_Deliver.UserNumber,src_addr); strcpy(proto.SGIP_Deliver.SPNumber,dst_addr); //strcpy(proto.svc_type,srv_type); strcpy((char*)(proto.SGIP_Deliver.Msg_Content),short_msg); proto.SGIP_Deliver.Msg_Length = strlen((char*)(proto.SGIP_Deliver.Msg_Content)); int seqpart3 = seqNo++; unsigned long seqid[3]; struct tm *curtime; time_t bintime; char part2[10]; time(&bintime); curtime = localtime(&bintime); memset(part2,0,10); sprintf(part2,"%2d%2d%2d%2d%2d",curtime->tm_mon,curtime->tm_mday, curtime->tm_hour,curtime->tm_min,curtime->tm_sec ); seqid[0] = SP_NODEID; seqid[1] = atol(part2); seqid[2] = seqpart3; wrapPacket(T_SGIP_DELIVERY,packet, (char*)&proto,LEN_SGIP_DELIVER,seqid); return ERROR_FREE;}void genSGIPSeq( unsigned long Seq_ID[3] ){ struct tm *curtime; time_t bintime; char part2[10]; time(&bintime); curtime = localtime(&bintime); memset(part2,0,10); sprintf(part2,"%2d%2d%2d%2d%2d",curtime->tm_mon,curtime->tm_mday, curtime->tm_hour,curtime->tm_min,curtime->tm_sec ); if(seqid_part3 == 999999) // reset seqid_part3 = 0; seqid_part3++; //Seq_ID[0] = SP_NODEID; Seq_ID[0] = SP_NODEID; Seq_ID[1] = curtime->tm_mon * 100000000 + curtime->tm_mday * 1000000 + curtime->tm_hour * 10000 + curtime->tm_min * 100 + curtime->tm_sec; //atol(part2); Seq_ID[2] = seqid_part3;}int main(int argc,char **argv){ int err=0; int rtn;/* argc--; if(argc < 5) { goto FORMAT; } else { if(argv[1][0] == '-') { if(strcmp(argv[1],"-delv") == 0) { QUEUE_DELV = 1; } else { goto FORMAT; } } else { goto FORMAT; } }*/ if( (err=SGCC_Init_delv())) { printf("SGCC_Init failed %d\n", err); return err; } RecSGIPPacket pk; memset(&pk,0,sizeof(pk)); pk.Type = T_SGIP_DELIVERY; genSGIPSeq(pk.seqid); printf("input sendno, and return:"); scanf("%s",pk.Body.SGIP_Deliver.UserNumber); printf("input recvno, and return:"); scanf("%s",pk.Body.SGIP_Deliver.SPNumber); //strcpy(g_re->serviceid, "6_AVG"); fprintf(stdout, "input the msg, and return:"); scanf("%s",pk.Body.SGIP_Deliver.Msg_Content); pk.Body.SGIP_Deliver.Msg_Length = strlen(pk.Body.SGIP_Deliver.Msg_Content); fprintf(stdout, "get msg is that:\n"); fprintf(stdout, "sendno==>%s\n", pk.Body.SGIP_Deliver.UserNumber); fprintf(stdout, "recvno==>%s\n", pk.Body.SGIP_Deliver.SPNumber); fprintf(stdout, "Deliverid==>%ld,%ld,%ld\n", pk.seqid[0],pk.seqid[1],pk.seqid[2]); fprintf(stdout, "msg==>%s\n",pk.Body.SGIP_Deliver.Msg_Content); fprintf(stdout, "msglen==>%d\n\n", pk.Body.SGIP_Deliver.Msg_Length); // genSimDelivery(&pk,argv[2], argv[3], argv[4], argv[5]); rtn=PutQueue(deliverQueue,(char*)&pk,LEN_SGIP_PACKET); if(rtn == QUEUE_FULL) { printf("Deliver QUEUE is FULL"); } else { cout << "Successfully put deliver msg to queue:\n============" << endl; printf("src_addr==%s\ndst_addr==%s\nsrv_type==%s\nshort_msg==%s\n",argv[2], argv[3], argv[4], argv[5]); cout << "============" << endl; } return 0;FORMAT: cout << "Format: " << argv[0] << " -delv src_addr dst_addr srv_type short_msg" << endl; cout << "e.g. putQueue -delv 13805784813 021888 0 H" << endl; return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -