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

📄 putqueue.cpp

📁 LIUNIX下,内存队列的读写处理软件,抛砖引玉
💻 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 + -