| | |
| | | return nResponseTime >= m_nTimeout; |
| | | } |
| | | |
| | | int CHsmsAction::serialize(char* pszBuffer, int nBufferSize) |
| | | { |
| | | int index = 0; |
| | | if (pszBuffer == nullptr) { |
| | | index += sizeof(int); |
| | | index += sizeof(m_nTimeout); |
| | | index += sizeof(int); |
| | | index += sizeof(BOOL); |
| | | index += m_pSendMessage->serialize(pszBuffer, nBufferSize); |
| | | |
| | | return index; |
| | | } |
| | | else { |
| | | memcpy(&pszBuffer[index], &m_nAction, sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | memcpy(&pszBuffer[index], &m_nTimeout, sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | memcpy(&pszBuffer[index], &m_nResponseTime, sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | memcpy(&pszBuffer[index], &m_bNeedWaitReply, sizeof(BOOL)); |
| | | index += sizeof(BOOL); |
| | | |
| | | index += m_pSendMessage->serialize(&pszBuffer[index], nBufferSize - index); |
| | | |
| | | return index; |
| | | } |
| | | } |
| | | |
| | | int CHsmsAction::unserialize(const char* pszBuffer, int nBufferSize) |
| | | { |
| | | int index = 0; |
| | | if (index + sizeof(int) > nBufferSize) return -1; |
| | | memcpy(&m_nAction, &pszBuffer[index], sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | if (index + sizeof(int) > nBufferSize) return -1; |
| | | memcpy(&m_nTimeout, &pszBuffer[index], sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | if (index + sizeof(int) > nBufferSize) return -1; |
| | | memcpy(&m_nResponseTime, &pszBuffer[index], sizeof(int)); |
| | | index += sizeof(int); |
| | | |
| | | if (index + sizeof(BOOL) > nBufferSize) return -1; |
| | | memcpy(&m_bNeedWaitReply, &pszBuffer[index], sizeof(BOOL)); |
| | | index += sizeof(BOOL); |
| | | |
| | | HSMS_Create1Message(m_pSendMessage, 1, 1 | REPLY, 1, 1); |
| | | int nRet = m_pSendMessage->unserialize(&pszBuffer[index], nBufferSize - index); |
| | | if (nRet < 0) return nRet; |
| | | |
| | | return index + nRet; |
| | | } |
| | | |