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

📄 sgipapp.h

📁 联通的短信网关平台。 sp 使用。 如果想自己用vc 开发短信业务
💻 H
字号:


/*****************************
 ** FILE: SGIPApp.h     ****
 ** Auth: Liaomch         ****
 ** Date: 2003-06-19      ****
 ** Modify:               ****
 *****************************/

/*
 *	SGIPApp.h
 */

#ifndef __SGIPAPP_H__
#define __SGIPAPP_H__

using namespace std;

#include <vector>

#include "sgip.h"
#include "SGIPPkg.h"
#include "SGIPComm.h"
#include "SGIPLog.h"

typedef struct 
{
	char cMsgid[30];
	SGIP_DELIVER_BODY Body;
}SGIP_DELIVER_PACKAGE;

typedef struct 
{
	char cMsgid[30];
	SGIP_REPORT_BODY Body;
}SGIP_REPORT_PACKAGE;

class CSGIPApp : CSGIPComm
{
public:
	CSGIPApp();
	~CSGIPApp();
	
	bool SGIPInit(char *pConfFile = NULL);
	int SGIPDeliver(SGIP_DELIVER_BODY &sDeliver, char *pMsgid, int nTimeOut);
	int SGIPReport(SGIP_REPORT_BODY &sSubReport, char *pMsgid, int nTimeOut);
	int SGIPSingleSend(SGIP_SUBMIT_BODY &sSubmit, char *pMsgid);
	void SGIPFinal(void);

#ifdef __DEBUG_API__
	int SGIPSingleSendReport(SGIP_REPORT_BODY &sReport);
	int SGIPSingleSendDeliver(SGIP_DELIVER_BODY &sDeliver);
	void CreateSubmit(SGIP_SUBMIT_BODY &sSubmit);
	void CreateReport(SGIP_REPORT_BODY &sReport);
	void CreateDeliver(SGIP_DELIVER_BODY &sDeliver);
#endif

private:
	bool initConfig(char *pFile = NULL);
	void GetValByName(const char *pName, char *pBuf, char *pVal);
	bool HadTimeOut(time_t tBase, int nTimeOut);

	friend void *GetAcceptProc(CSGIPApp *pSGIPApp);
	friend void *RecvThread(CSGIPApp *pSGIPApp);

private:
	pthread_mutex_t m_DeliverVec_mutex;
	pthread_mutex_t m_ReportVec_mutex;
	pthread_mutex_t m_AcceptSock_mutex;
	int m_Listenfd;
	int m_nAccSock;

	CMobilLog *m_pLog;

	time_t tLastSendSubmitTime;//最后一次发SUBMIT包时间
	int nSubmitTimes; //已重发SUBMIT的次数
	bool bInitConf;
	bool bTermitnate;
	//vector<SGIP_DELIVER_BODY *> m_pDeliver; //存贮返回的mo deliver
	//vector<SGIP_REPORT_BODY *> m_pReport; //存贮返回的mo Report
	vector<SGIP_DELIVER_PACKAGE *> m_pDeliver;
	vector<SGIP_REPORT_PACKAGE *> m_pReport; //存贮返回的mo Report

//add by liaomch 2003-08-14
private:
	int m_nSendSock;
	bool bSendFinish;
public:
	void SetFinishStat(bool bStat)
	{
		bSendFinish = bStat;
	}
	bool GetFinishStat(void)
	{
		return bSendFinish;
	}
	

};

#endif//__MOBILAPP_H__

⌨️ 快捷键说明

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