| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- #pragma once
 
- #include <ProtocolHandler.h>
 
- #include <ZlDataDefine.h>
 
- #include <mutex>
 
- class CLibEventTCPClient;
 
- struct per_user_data;
 
- class CSendTask
 
- {
 
- public:
 
- 	CSendTask(LPBYTE pPack, int nPackLen, uint32_t packno, E_ZL_PROTOCAL protocal, bool);
 
- 	void join();//释放调用这个
 
- private:
 
- 	~CSendTask();
 
- public:
 
- 	LPBYTE pdata;
 
- 	int nlen;
 
- 	uint32_t packno;
 
- 	E_ZL_PROTOCAL protocal;
 
- 	bool bRePeatSend;
 
- };
 
- class CSuperHandler : public CProtocolHandler
 
- {
 
- public:
 
- 	CSuperHandler();
 
- 	~CSuperHandler();
 
- public:
 
- 	BOOL HandlePack(LPBYTE pPack, int nPackLen, SOCKADDR* psa, void* pClientContext = NULL) override;
 
- 	BOOL RecvPack(uint32_t packno, E_ZL_PROTOCAL protocal);
 
- 	BOOL HandleSubNotify(LPHJDATAHEAD2 lpHead, char* json, int json_len);
 
- 	inline void SetFather(per_user_data* a)
 
- 	{
 
- 		m_pFather = a;
 
- 	}
 
- 	inline void SetClient(CLibEventTCPClient* pClient)
 
- 	{
 
- 		m_pClient = pClient;
 
- 	}
 
- 	inline size_t tasksize()
 
- 	{
 
- 		return m_task.size();
 
- 	}
 
- 	//重发, 有单独线程调用
 
- 	BOOL ReSend();
 
- 	bool Send(uint8_t* data, uint32_t len);
 
- 	void Insert(LPBYTE pPack, int nPackLen, uint32_t packno, E_ZL_PROTOCAL protocal, bool);
 
- protected:
 
- 	per_user_data* m_pFather = nullptr;
 
- 	CLibEventTCPClient* m_pClient = nullptr;
 
- 	std::list<CSendTask*> m_task;
 
- 	std::mutex m_mtx;
 
- };
 
 
  |