SmsCenter/IOCP/DataStruct.h.bak

332 lines
8.7 KiB
C
Raw Normal View History

2025-01-03 16:47:25 +08:00
#pragma once
//////////////////////////////////////////////////////////////////////////
#ifdef UNICODE
#define BUFFER_SIZE 500000
#define MAXTHREAD_COUNT 8
#define MAX_LOGINUSER 50 //<2F><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>ͬʱ<CDAC><CAB1><EFBFBD>ߵ<EFBFBD><DFB5>û<EFBFBD><C3BB><EFBFBD>
#else
#define BUFFER_SIZE 300000
#define MAXTHREAD_COUNT 16
#ifdef _DEBUG
#define MAX_LOGINUSER 30 //<2F><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>ͬʱ<CDAC><CAB1><EFBFBD>ߵ<EFBFBD><DFB5>û<EFBFBD><C3BB><EFBFBD>
#else
#define MAX_LOGINUSER 2000 //<2F><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>ͬʱ<CDAC><CAB1><EFBFBD>ߵ<EFBFBD><DFB5>û<EFBFBD><C3BB><EFBFBD>
#endif
#endif
#define MIN_SQLCONNECT 15 //<2F><>Сͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>SQL<51><4C><EFBFBD>ݿ<EFBFBD>
#define MAX_SQLCONNECT 150 //<2F><><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>SQL<51><4C><EFBFBD>ݿ<EFBFBD>
#define SQL_TIMEOUT_USE 30*60*1000 //ʹ<><CAB9>״̬<D7B4>е<EFBFBD>SQL,30<33><30><EFBFBD>ӳ<EFBFBD>ʱ
#define SQL_TIMEOUT_DISUSE 15*60*1000 //<2F><>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD>SQL,15<31><35><EFBFBD>ӳ<EFBFBD>ʱ
//////////////////////////////////////////////////////////////////////////
//
//<2F><><EFBFBD>ɶ˿<C9B6><CBBF><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>¼<EFBFBD>
//
typedef enum
{
IOCP_COMPLETE_NULL,
IOCP_COMPLETE_READ,
IOCP_COMPLETE_ACCEPT_READ,
IOCP_COMPLETE_WRITE,
IOCP_COMPLETE_ACCEPT
}IOCP_COMPLETE_STATE;
//
//<2F>Զ<EFBFBD><D4B6><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>׽<EFBFBD><D7BD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
typedef enum
{
IOCP_NULL, //AcceptEx/accept
IOCP_ACCEPT, //AcceptEx/accept
IOCP_READ, //WSARecv/recv/ReadFile
IOCP_WRITE, //WSASend/send/WriteFile
IOCP_END,
IOCP_WRITE2, //WSASend/send/WriteFile
}IOCP_OPERATION, *IOCP_OPERATION_PTR;
//
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//
typedef struct
{
SOCKET socket;
long lRandID;
}IOCP_KEY,*IOCP_KEY_PTR;
//
//<2F><>־SOCKET<45>ĵ<EFBFBD>ǰ״̬
//
enum
{
SOCKET_STATE_NOT_CONNECT,
SOCKET_STATE_CONNECT,
SOCKET_STATE_CONNECT_AND_READ,
SOCKET_STATE_TIMEOUT
};
//<2F><><EFBFBD>ڽ<EFBFBD><DABD>յ<EFBFBD>IO
typedef struct
{
WSAOVERLAPPED ol;
SOCKET socket;
IOCP_OPERATION operation;
volatile int state;
long lRandID; //<2F>ж<EFBFBD>״̬<D7B4><CCAC>
WSABUF wsaBuf; //<2F><><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>head<61><64><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>
}IOCP_IO_SEND,*IOCP_IO_SEND_PTR;
//
//<2F><>IO<49><4F><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>չ<EFBFBD><D5B9>WSAOVERLAPPED
//
typedef struct
{
WSAOVERLAPPED ol;
SOCKET socket;
IOCP_OPERATION operation;
volatile int state;
long lRandID; //<2F>ж<EFBFBD>״̬<D7B4><CCAC>
WSABUF wsaBuf;
long lRecvLen;
//ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ProcessSocket<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR m_szIP[32]; //<2F>Է<EFBFBD><D4B7><EFBFBD>ip
UINT m_lPort; //<2F>Է<EFBFBD><D4B7>Ķ˿<C4B6>
UINT m_lLocalPort; //<2F><><EFBFBD>ض˿<D8B6>
SYSTEMTIME m_LoginTime; //<2F><>¼ʱ<C2BC><CAB1>
TCHAR m_szCorpName[96]; //<2F><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>
TCHAR m_szLoginName[32]; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
long m_lLoginCount; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
UCHAR m_ucUserType; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
long m_lCorpID; //<2F><>ҵID
long m_lUserID; //<2F>û<EFBFBD>ID
long m_lAgentID; //<2F><><EFBFBD><EFBFBD>ҵ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ID
long m_lYWYAgent;
long m_lAgentType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG m_ulPurviewType; //Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG m_ulPurview; //Ȩ<><C8A8>
long m_lVer;
long m_lAccessGroup; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ¼<D1B6><C2BC>
BOOL m_bCheckup;
BOOL m_bCompress; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD>ѹ<EFBFBD><D1B9>
DWORD m_dwSendCount; //<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
DWORD m_dwLastSend; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>
long m_lFStep; //<2F><><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>
ULONG m_lID;
BOOL m_bCmpp; //<2F>Ƿ<EFBFBD>CmppЭ<70><D0AD>
long m_lSDK; //SDK<44><4B><EFBFBD><EFBFBD>
DWORD dwAcceptTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwEndRecvFrame; //<2F><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1>ʱ<EFBFBD><CAB1>
IOCP_KEY_PTR pKey; //<2F><>Ӧ<EFBFBD><D3A6>key<65><79><EFBFBD><EFBFBD>
// IOCP_IO_SEND IOS;
char buf[BUFFER_SIZE];
}IOCP_IO,*IOCP_IO_PTR;
typedef struct
{
BOOL bUse;
long lRandID;
CAdoConnection adoConnection;
DWORD dwBeginUse;
DWORD dwEndUse;
long lFuncID;
long lUserID;
}IOCP_SQL,*IOCP_SQL_PTR;
//CMPP Э<><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>
#define CMPP_CONNECT 0x00000001 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_CONNECT_RESP 0x80000001 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_TERMINATE 0x00000002 //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
#define CMPP_TERMINATE_RESP 0x80000002 //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_SUBMIT 0x00000004 //<2F><EFBFBD><E1BDBB><EFBFBD><EFBFBD>
#define CMPP_SUBMIT_RESP 0x80000004 //<2F><EFBFBD><E1BDBB><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_DELIVER 0x00000005 //<2F><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
#define CMPP_DELIVER_RESP 0x80000005 //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_QUERY 0x00000006 //<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>״̬<D7B4><CCAC>ѯ
#define CMPP_QUERY_RESP 0x80000006 //<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>״̬<D7B4><CCAC>ѯӦ<D1AF><D3A6>
#define CMPP_CANCEL 0x00000007 //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_CANCEL_RESP 0x80000007 //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_ACTIVE_TEST 0x00000008 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_ACTIVE_TEST_RESP 0x80000008 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_FWD 0x00000009 //<2F><>Ϣǰת
#define CMPP_FWD_RESP 0x80000009 //<2F><>ϢǰתӦ<D7AA><D3A6>
#define CMPP_MT_ROUTE 0x00000010 //MT·<54><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_MT_ROUTE_RESP 0x80000010 //MT·<54><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_MO_ROUTE 0x00000011 //MO·<4F><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_MO_ROUTE_RESP 0x80000011 //MO·<4F><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_GET_ROUTE 0x00000012 //<2F><>ȡ·<C8A1><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CMPP_GET_ROUTE_RESP 0x80000012 //<2F><>ȡ·<C8A1><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_MT_ROUTE_UPDATE 0x00000013 //MT·<54>ɸ<EFBFBD><C9B8><EFBFBD>
#define CMPP_MT_ROUTE_UPDATE_RESP 0x80000013 //MT·<54>ɸ<EFBFBD><C9B8><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_MO_ROUTE_UPDATE 0x00000014 //MO·<4F>ɸ<EFBFBD><C9B8><EFBFBD>
#define CMPP_MO_ROUTE_UPDATE_RESP 0x80000014 //MO·<4F>ɸ<EFBFBD><C9B8><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_PUSH_MT_ROUTE_UPDATE 0x00000015 //MT·<54>ɸ<EFBFBD><C9B8><EFBFBD>
#define CMPP_PUSH_MT_ROUTE_UPDATE_RESP 0x80000015 //MT·<54>ɸ<EFBFBD><C9B8><EFBFBD>Ӧ<EFBFBD><D3A6>
#define CMPP_PUSH_MO_ROUTE_UPDATE 0x00000016 //MO·<4F>ɸ<EFBFBD><C9B8><EFBFBD>
#define CMPP_PUSH_MO_ROUTE_UPDATE_RESP 0x80000016 //MO·<4F>ɸ<EFBFBD><C9B8><EFBFBD>Ӧ<EFBFBD><D3A6>
#pragma pack( push )
#pragma pack( 1 )
typedef struct _Cmpp_Head
{
ULONG Total_Length;
ULONG Command_Id;
ULONG Sequence_Id;
}Cmpp_Head;
typedef struct _Cmpp_Connect
{
char Source_Addr[6];
UCHAR AuthenticatorSource[16];
UCHAR Version;
ULONG Timestamp;
}Cmpp_Connect;
typedef struct _Cmpp_Connect_Resp
{
UCHAR Status;
UCHAR AuthenticatorSource[16];
UCHAR Version;
}Cmpp_Connect_Resp;
typedef struct _Cmpp_Active_Test_Resp
{
UCHAR Reserved;
}Cmpp_Active_Test_Resp;
typedef struct _Cmpp_Terminate_Resp
{
}Cmpp_Terminate_Resp;
typedef struct _Cmpp_Submit
{
LONGLONG Msg_ID;
UCHAR Pk_total;
UCHAR Pk_number;
UCHAR Registered_Delivery;
UCHAR Msg_level;
UCHAR Service_Id[10];
UCHAR Fee_UserType;
UCHAR Fee_terminal_Id[21];
UCHAR TP_pId;
UCHAR TP_udhi;
UCHAR Msg_Fmt;
UCHAR Msg_src[6];
UCHAR FeeType[2];
UCHAR FeeCode[6];
UCHAR ValId_Time[17];
UCHAR At_Time[17];
UCHAR Src_Id[21];
UCHAR DestUsr_tl;
UCHAR Dest_terminal_Id[21];
UCHAR Msg_Length;
}Cmpp_Submit;
typedef struct _Cmpp_Submit_Resp
{
LONGLONG Msg_ID;
UCHAR Result;
}Cmpp_Submit_Resp;
typedef struct _Send_List
{
ULONG lSendID; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF>м<EFBFBD>¼<EFBFBD><C2BC>SendID
ULONG lSeq; //<2F><><EFBFBD><EFBFBD>cmpp<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ULONG lCmppSeq; //ʹ<><CAB9>cmppת<70>ӵ<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
ULONG lSendTime; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD>η<EFBFBD><CEB7><EFBFBD>ʱ<EFBFBD><CAB1>
ULONG lReSendCount; //<2F>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6>ٴ<EFBFBD>
UCHAR Msg[512]; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
Cmpp_Submit Submit;
}Send_List;
typedef struct _SmsReport
{
long lSmsReportID;
CString strMsgID;
long lReportStatus;
CString strRecvStatus;
long lSendFCS;
CString strMobile;
}SmsReport;
typedef struct _FXSend_MT
{
long SendID;
long CorpID;
long UserID;
CString GroupID;
long Status;
CString MsgID;
long SendRet;
long SendFCS;
long ReSendCount;
CString Sender;
CString SendNum;
CString Recver;
CString RecvNum;
long RecvNumType;
CString Msg;
long MsgType;
COleDateTime SubTime;
COleDateTime Timer;
long Priority;
long StatusReport;
COleDateTime OvrTime;
COleDateTime SendTime;
COleDateTime RecvTime;
CString RecvStatus;
long KF;
CString IP;
CString SM_ID;
CString TRANS_CODE;
CString ORGAN_CODE;
COleDateTime tAddThisTime;
}FXSend_MT;
//<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>״̬
typedef struct _Send_Resp
{
ULONG lSendID; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF>м<EFBFBD>¼<EFBFBD><C2BC>SendID
ULONG lResult; //<2F><><EFBFBD><EFBFBD>״̬
ULONG lReSendCount; //<2F>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6>ٴ<EFBFBD>
LONGLONG lMsgID; //<2F><><EFBFBD>ͳɹ<CDB3>ʱ<EFBFBD>д˷<D0B4><CBB7><EFBFBD>
}Send_Resp;
typedef struct _Cmpp_Deliver
{
LONGLONG Msg_ID;
UCHAR Dest_Id[21];
UCHAR Service_Id[10];
UCHAR TP_pid;
UCHAR TP_udhi;
UCHAR Msg_Fmt;
UCHAR Src_terminal_Id[21];
UCHAR Registered_Delivery;
UCHAR Msg_Length;
}Cmpp_Deliver;
typedef struct _Cmpp_Status
{
LONGLONG Msg_ID;
UCHAR Stat[7];
UCHAR Submit_time[10];
UCHAR Done_time[10];
UCHAR Dest_terminal_Id[21];
ULONG SMSC_sequence;
}Cmpp_Status;
typedef struct _Cmpp_Deliver_Resp
{
LONGLONG Msg_ID;
UCHAR Result;
}Cmpp_Deliver_Resp;
#pragma pack( pop )