최종완료보고 버전
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
|
||||
#ifndef VSP_HANDLER__H_
|
||||
#define VSP_HANDLER__H_
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
|
||||
#define EXTRACT_NEXT_PARAM(VALIABLE, NEXT, SIZE, OFFSET) \
|
||||
if ((OFFSET = VALIABLE.Tokenize(NEXT, SIZE, ' ')) <= 1) { \
|
||||
if (SIZE > 0) { VALIABLE.Assign(NEXT, SIZE); OFFSET = SIZE; } \
|
||||
else { HLOGF(HLOG_ERROR, "[ERROR], Invalid param, %s\n", NEXT); \
|
||||
return -1; } } \
|
||||
NEXT += OFFSET; SIZE -= OFFSET;
|
||||
|
||||
|
||||
|
||||
class HVspHandler : public HProtocolHandler
|
||||
{
|
||||
public:
|
||||
enum
|
||||
{
|
||||
//HH_VSP_MAX_COMMAND_PACKET_SIZE = 8192
|
||||
HH_VSP_MAX_COMMAND_PACKET_SIZE = 65536
|
||||
};
|
||||
|
||||
HVspHandler();
|
||||
~HVspHandler();
|
||||
|
||||
int SendCommand(const HString & strCommand);
|
||||
int SendBinary(const char * pData, size_t nSize);
|
||||
|
||||
protected:
|
||||
int SendBufferCommand();
|
||||
|
||||
void OnReceivedStatusFromTransport(int nStatus);
|
||||
int OnReceivedFromTransport(const char * pData, int nSize);
|
||||
int ProcPacketBodyReceive();
|
||||
|
||||
int OnSendRetryToTransport();
|
||||
bool OnPrepareReceive();
|
||||
|
||||
virtual void OnInitialize(bool bIsSuccess) = 0;
|
||||
virtual void OnTerminate() = 0;
|
||||
virtual int OnReceivedCommand(const char * pPacket, int nSize) = 0;
|
||||
|
||||
protected:
|
||||
HStreamBuffer * m_pRecvBuffer;
|
||||
int m_nBodyOffset;
|
||||
long m_nBodySize;
|
||||
long m_nRemainBodySize;
|
||||
|
||||
HStreamBuffer * m_pSendBuffer;
|
||||
};
|
||||
|
||||
|
||||
#endif // REDUNDANCY__H_
|
||||
|
||||
Reference in New Issue
Block a user