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

📄 cmpp_base.h.bak

📁 中国移动长短信接收发送的网关系统工程源程序代码
💻 BAK
字号:
// CmppBase.h: interface for the CCmppBase20 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CMPPBASE20_H__5E9BD189_C9CC_4963_A1B6_B8D60604460D__INCLUDED_)
#define AFX_CMPPBASE20_H__5E9BD189_C9CC_4963_A1B6_B8D60604460D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class cdatabuf;

/////////////////////CMPP Version 2.0///////////////////////////////
class __declspec(dllexport) CMPP_HEAD  
{
public:
	CMPP_HEAD();
	virtual ~CMPP_HEAD();
public:
	virtual int	 Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);

	int GetCommand();
	int GetSize();
	int GetSequenceId();
	int GetHeaderLen();
public:
	
	
	int	nTotalLength;
	int	nCommandId;
	int	nSequenceId;
};

class __declspec(dllexport) CMPP_CONNECT  : public CMPP_HEAD
{
public:
	CMPP_CONNECT();
	virtual ~CMPP_CONNECT();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char sSourceAddr[6];
	unsigned char sAuthSource[16];
	unsigned char cVersion;
	int	 nTimeStamp;
};

class __declspec(dllexport) CMPP_CONNECT_RESP  : public CMPP_HEAD
{
public:
	CMPP_CONNECT_RESP();
	virtual ~CMPP_CONNECT_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	unsigned char cStatus;
	unsigned char sAuthIsmg[16];
	unsigned char cVersion;
};

class __declspec(dllexport) CMPP_SUBMIT : public CMPP_HEAD
{
public:
	CMPP_SUBMIT();
	virtual ~CMPP_SUBMIT();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	unsigned char	nMsgId[8];
	unsigned char	cPkTotal;
	unsigned char	cPkNumber;
	unsigned char	cRegisteredDelivery;
	unsigned char	cMsgLevel;
	unsigned char	sServiceId[10];
	unsigned char	cFeeUserType;
	unsigned char	nFeeTerminaleId[21];
	unsigned char	cTpPid;
	unsigned char	cTpUdhi;
	unsigned char	cMsgFmt;
	unsigned char	sMsgSrc[6];
	unsigned char	sFeeType[2];
	unsigned char	sFeeCode[6];
	unsigned char	sValidTime[17];
	unsigned char	sAtTime[17];
	unsigned char	sSrcId[21];
	unsigned char	cDestUsrTl;
	unsigned char	sDestTerminalId[21];
	unsigned char	cMsgLen;
	unsigned char	sMsgContent[140];
	unsigned char	sReserve[8];
};

class __declspec(dllexport) CMPP_SUBMIT_RESP  : public CMPP_HEAD
{
public:
	CMPP_SUBMIT_RESP();
	virtual ~CMPP_SUBMIT_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	nMsgId[8];
	unsigned char	cResult;

};

class __declspec(dllexport) CMPP_QUERY  : public CMPP_HEAD
{
public:
	CMPP_QUERY();
	virtual ~CMPP_QUERY();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	sTime[8];
	unsigned char	cQueryType;
	unsigned char	sQueryCode[10];
	unsigned char	sReserve[8];

};

class __declspec(dllexport) CMPP_QUERY_RESP  : public CMPP_HEAD
{
public:
	CMPP_QUERY_RESP();
	virtual ~CMPP_QUERY_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:

	unsigned char	sTime[8];
	unsigned char	cQueryType;
	unsigned char	sQueryCode[10];
	unsigned char	nMTTLMsg;
	unsigned char	nMTTlusr;
	unsigned char	nMTScs;
	unsigned char	nMTWT;
	unsigned char	nMTFL;
	unsigned char	nMOScs;
	unsigned char	nMOWT;
	unsigned char	nMOFL;
};

class __declspec(dllexport) CMPP_CANCEL  : public CMPP_HEAD
{
public:
	CMPP_CANCEL();
	virtual ~CMPP_CANCEL();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	unsigned char	nMsgId[8];
};

class __declspec(dllexport) CMPP_CANCEL_RESP  : public CMPP_HEAD
{
public:
	CMPP_CANCEL_RESP();
	virtual ~CMPP_CANCEL_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	cSuccessId;

};

class __declspec(dllexport) CMPP_DELIVER  : public CMPP_HEAD
{
public:
	CMPP_DELIVER();
	virtual ~CMPP_DELIVER();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:

	unsigned char	nMsgId[8];
	unsigned char	sDestId[21];
	unsigned char	sServiceId[10];
	unsigned char	cTpPid;
	unsigned char	cTpUdhi;
	unsigned char	cMsgFmt;
	unsigned char	sSrcTermId[21];
	unsigned char	cRegisteredDelivery;
	unsigned char	cMsgLen;
	unsigned char	sMsgContent[140];
	unsigned char	sReserve[8];

};

class __declspec(dllexport) CMPP_ACTIVE_RESP  : public CMPP_HEAD
{
public:
	CMPP_ACTIVE_RESP();
	virtual ~CMPP_ACTIVE_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	cReserved;

};


////////////////////////CMPP Version 3.0//////////////////////////////////////
class __declspec(dllexport) CMPP30_HEAD  
{
public:
	CMPP30_HEAD();
	virtual ~CMPP30_HEAD();
public:
	virtual int	 Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);

	int GetCommand();
	int GetSize();
	int GetSequenceId();
	int GetHeaderLen();
public:
	
	
	int	nTotalLength;
	int	nCommandId;
	int	nSequenceId;
};

class __declspec(dllexport) CMPP30_CONNECT  : public CMPP30_HEAD
{
public:
	CMPP30_CONNECT();
	virtual ~CMPP30_CONNECT();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char sSourceAddr[6];
	unsigned char sAuthSource[16];
	unsigned char cVersion;
	int	 nTimeStamp;
};

class __declspec(dllexport) CMPP30_CONNECT_RESP  : public CMPP30_HEAD
{
public:
	CMPP30_CONNECT_RESP();
	virtual ~CMPP30_CONNECT_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	int cStatus;
	unsigned char sAuthIsmg[16];
	unsigned char cVersion;
};

class __declspec(dllexport) CMPP30_SUBMIT : public CMPP30_HEAD
{
public:
	CMPP30_SUBMIT();
	virtual ~CMPP30_SUBMIT();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	unsigned char	nMsgId[8];
	unsigned char	cPkTotal;
	unsigned char	cPkNumber;
	unsigned char	cRegisteredDelivery;
	unsigned char	cMsgLevel;
	unsigned char	sServiceId[10];
	unsigned char	cFeeUserType;
	unsigned char	nFeeTerminaleId[32];
	unsigned char	cSrcttype;
	unsigned char	cTpPid;
	unsigned char	cTpUdhi;
	unsigned char	cMsgFmt;
	unsigned char	sMsgSrc[6];
	unsigned char	sFeeType[2];
	unsigned char	sFeeCode[6];
	unsigned char	sValidTime[17];
	unsigned char	sAtTime[17];
	unsigned char	sSrcId[21];
	unsigned char	cDestUsrTl;
	unsigned char	sDestTerminalId[21];
	unsigned char	cDesttype;
	unsigned char	cMsgLen;
	unsigned char	sMsgContent[160];
	unsigned char	sReserve[20];
};

class __declspec(dllexport) CMPP30_SUBMIT_RESP  : public CMPP30_HEAD
{
public:
	CMPP30_SUBMIT_RESP();
	virtual ~CMPP30_SUBMIT_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	nMsgId[8];
	int	cResult;

};

class __declspec(dllexport) CMPP30_QUERY  : public CMPP30_HEAD
{
public:
	CMPP30_QUERY();
	virtual ~CMPP30_QUERY();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	sTime[8];
	unsigned char	cQueryType;
	unsigned char	sQueryCode[10];
	unsigned char	sReserve[8];

};

class __declspec(dllexport) CMPP30_QUERY_RESP  : public CMPP30_HEAD
{
public:
	CMPP30_QUERY_RESP();
	virtual ~CMPP30_QUERY_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:

	unsigned char	sTime[8];
	unsigned char	cQueryType;
	unsigned char	sQueryCode[10];
	unsigned char	nMTTLMsg;
	unsigned char	nMTTlusr;
	unsigned char	nMTScs;
	unsigned char	nMTWT;
	unsigned char	nMTFL;
	unsigned char	nMOScs;
	unsigned char	nMOWT;
	unsigned char	nMOFL;
};

class __declspec(dllexport) CMPP30_CANCEL  : public CMPP30_HEAD
{
public:
	CMPP30_CANCEL();
	virtual ~CMPP30_CANCEL();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	unsigned char	nMsgId[8];
};

class __declspec(dllexport) CMPP30_CANCEL_RESP  : public CMPP30_HEAD
{
public:
	CMPP30_CANCEL_RESP();
	virtual ~CMPP30_CANCEL_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	cSuccessId;

};

class __declspec(dllexport) CMPP30_DELIVER  : public CMPP30_HEAD
{
public:
	CMPP30_DELIVER();
	virtual ~CMPP30_DELIVER();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:

	unsigned char	nMsgId[8];
	unsigned char	sDestId[21];
	unsigned char	sServiceId[10];
	unsigned char	cTpPid;
	unsigned char	cTpUdhi;
	unsigned char	cMsgFmt;
	unsigned char	sSrcTermId[32];
	unsigned char	cSrctype;
	unsigned char	cRegisteredDelivery;
	unsigned char	cMsgLen;
	unsigned char	sMsgContent[200];
	unsigned char	sLinkID[20] ;
};

class __declspec(dllexport) CMPP30_ACTIVE_RESP  : public CMPP30_HEAD
{
public:
	CMPP30_ACTIVE_RESP();
	virtual ~CMPP30_ACTIVE_RESP();
public:
	virtual int Encode(cdatabuf **pdata);
	virtual void Decode(cdatabuf *pdata);
public:
	
	unsigned char	cReserved;

};



#ifdef _CMPP_VER20_
	typedef CMPP_HEAD HEAD;
	typedef CMPP_CONNECT CONNECT;
	typedef CMPP_CONNECT_RESP CONNECT_RESP;
	typedef CMPP_SUBMIT SUBMIT;
	typedef CMPP_SUBMIT_RESP SUBMIT_RESP;
	typedef CMPP_DELIVER DELIVER;
	typedef CMPP_CANCEL CANCEL;
	typedef CMPP_CANCEL_RESP CANCEL_RESP;
	typedef CMPP_QUERY QUERY;
	typedef CMPP_QUERY_RESP QUERY_RESP;
	typedef CMPP_ACTIVE_RESP ACTIVE_RESP;
	//typedef CMPP_DELIVER_RESP DELIVER_RESP;
#else
	typedef CMPP30_HEAD HEAD;
	typedef CMPP30_CONNECT CONNECT;
	typedef CMPP30_CONNECT_RESP CONNECT_RESP;
	typedef CMPP30_SUBMIT SUBMIT;
	typedef CMPP30_SUBMIT_RESP SUBMIT_RESP;
	typedef CMPP30_DELIVER DELIVER;
	typedef CMPP30_CANCEL CANCEL;
	typedef CMPP30_CANCEL_RESP CANCEL_RESP;
	typedef CMPP30_QUERY QUERY;
	typedef CMPP30_QUERY_RESP QUERY_RESP;
	typedef CMPP30_ACTIVE_RESP ACTIVE_RESP;
	//typedef CMPP30_DELIVER_RESP DELIVER_RESP;
#endif

//////////////////////////////////////////////////////////////////////////////

class __declspec(dllexport) CMSGResult  
{
public:
	CMSGResult();
	virtual ~CMSGResult();
	
	
	int		getErrFromMsgid(unsigned char* msgid);			//	获得消息ID的状态
	int		getNextErrMsgid(unsigned char* msgid);		//	获得下一个错误消息ID,及返回当前编号
	
//	int		getSerialArray(int *serial);			//	获得所有错误消息ID的编号数组
	int		getErrSerialArray(int *serial);			//	获得所有错误消息ID的编号数组

	int		getMsgidString(char** msgid);			//	获得所有消息ID字符串,并返回个数。
	int		getErrMsgidString(char** msgid);		//	获得所有出错消息ID字符串,并返回个数。

	void	moveFirst();							//	移动游标到最前位置
	void	moveLast();								//	移动游标到最后位置

	int		getCount();								//
	int		getErrCount();

	int		create(int n);
	void	release();

	void	setMsg(int index,char* msgcon,int len);
	void	setMsg(int index,unsigned char* msgid,unsigned char ret);
	void	setMsg(int index,unsigned char* msgid,int ret);

	void	getMsg(int index,char* msgcon,int* len);
	void	getMsg(int index,unsigned char* msgid,unsigned char* ret);
	void	getMsg(int index,unsigned char* msgid,int* ret);
private:
	void	increase_err();
	void	descend_err();
public:
	int seq;										//	流水号
private:
	int cur_i;										//	当前游标位置
	int sub;										//	总个数
	int err;										//	错误个数
	
	typedef struct {
		SUBMIT_RESP resp;
		char *msgcon;
		int len;
	}MSG;

	MSG	*msg;
};

class __declspec(dllexport) CHmMap
{
public:
	
	CHmMap();
	virtual ~CHmMap();

	int create(int n);
	int getCount();
	void release();

	CMSGResult* getItem(int index);
	
private:
	CMSGResult*	pRet;
	int			num;
};



#endif // !defined(AFX_CMPPBASE20_H__5E9BD189_C9CC_4963_A1B6_B8D60604460D__INCLUDED_)

⌨️ 快捷键说明

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