#include "stdafx.h" #include "LNBuffer.h" #include CLNBuffer::CLNBuffer() { } CLNBuffer::~CLNBuffer() { } int CLNBuffer::HasPack() { if (m_nPos == 0) return 0; int i, nStart = -1; //find pack head for (i = 0; i < m_nPos - 1 && m_nPos > 4; i++) { if (m_pBuffer[i] == '{') { nStart = i; break; } } if (nStart == -1) { m_nPos = 0; return 0; } else if (nStart > 0) { m_nPos -= nStart; memmove(m_pBuffer, m_pBuffer + nStart, m_nPos); nStart = 0; } int nlen = 0; //find pack tail for (i = 1; i < m_nPos; i++) { if (m_pBuffer[i] == '{') { m_nPos -= i; memmove(m_pBuffer, m_pBuffer + i, m_nPos); nStart = 0; return nlen; } if (m_pBuffer[i] == '}') { nlen = i + 1; return nlen; } } return nlen; }