📄 cmpp_base.h
字号:
// 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;
typedef int (* ISendToUser )(char* data,int size);
/////////////////////CMPP Version 2.0///////////////////////////////
struct __declspec(dllexport) Query_Res //网关查询
{
unsigned long mt_total_msg; //从ICP接收的信息总数
//unsigned long mt_total_user; //从ICP接收的用户总数
unsigned long mt_succ; //成功转发数量
unsigned long mt_wait; //待转发数量
unsigned long mt_fail; //转发失败数量
unsigned long mo_succ; //向ICP成功送达数量
unsigned long mo_wait; //向ICP待送达数量
unsigned long mo_fail; //向ICP送达失败数量
};
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];
int nMTTLMsg;
int nMTTlusr;
int nMTScs;
int nMTWT;
int nMTFL;
int nMOScs;
int nMOWT;
int 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[256];
unsigned char sReserve[8];
};
class __declspec(dllexport) CMPP_DELIVER_RESP : public CMPP_HEAD
{
public:
CMPP_DELIVER_RESP();
virtual ~CMPP_DELIVER_RESP();
public:
virtual int Encode(cdatabuf **pdata);
virtual void Decode(cdatabuf *pdata);
public:
unsigned char nMsgId[8];
unsigned char cResult;
};
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 nStatus;
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 nResult;
};
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;
};
class __declspec(dllexport) CMPP_REPORT {
public:
CMPP_REPORT();
virtual ~CMPP_REPORT();
public:
virtual int Encode(cdatabuf **pdata);
virtual void Decode(cdatabuf *pdata);
public:
unsigned char nMsgId[8];
unsigned char sStat[7];
unsigned char sSubmitTime[10];
unsigned char sDoneTime[10];
unsigned char sDestTermId[21];
int nSMSCSeq;
};
//////////////////////////////////////////////////////////////////////////////
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 create(int n);
void release();
void setMsg(int index,CMPP_REPORT* report);
void setMsg(int index,char* msgcon,int len);
void setMsg(int index,unsigned char* msgid,unsigned char ret);
void getMsg(int index,char* stat);
void getMsg(int index,char* msgcon,int* len);
void getMsg(int index,unsigned char* msgid,unsigned char* ret);
public:
void restort_submit();
void restort_deliver();
private:
typedef struct {
int seq;
CMPP_SUBMIT_RESP resp;
CMPP_REPORT report; //
char *msgcon;
int len;
}MSG;
public:
CStringList* getErrSeqidArray();
MSG *msg;
int UNGETRESP; // 没有得到SUBMIT_RESP
int SENDERR; // 提交错误个数
int UNGETDLV; // 没有得到状态报告 DELIVER
/*Message State Final Message States Description
DELIVERED DELIVRD Message is delivered to destination
EXPIRED EXPIRED Message validity period has
expired
DELETED DELETED Message has been deleted.
UNDELIVERABLE UNDELIV Message is undeliverable
ACCEPTED ACCEPTD Message is in accepted state(i.e. has been manually read on behalf of the subscriber by customer service)
UNKNOWN UNKNOWN Message is in invalid state
REJECTED REJECTD Message is in a rejected state
*/
int DELIVRD; //
int EXPIRED; //
int DELETED;
int ACCEPTD;
int UNKNOWN;
int REJECTD;
int UNDELIV;
// 流水号
private:
int cur_i; // 当前游标位置
int all; // 总个数
};
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 + -