LNBuffer.cpp 807 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "stdafx.h"
  2. #include "LNBuffer.h"
  3. CLNBuffer::CLNBuffer()
  4. {
  5. }
  6. CLNBuffer::~CLNBuffer()
  7. {
  8. }
  9. int CLNBuffer::HasPack()
  10. {
  11. int i, nStart = -1;
  12. //find pack head
  13. for (i = 0; i < m_nPos - 1 && m_nPos > 4; i++)
  14. {
  15. if (m_pBuffer[i] == '{')
  16. {
  17. nStart = i;
  18. break;
  19. }
  20. }
  21. if (nStart == -1)
  22. {
  23. m_nPos = 0;
  24. return 0;
  25. }
  26. else if (nStart > 0)
  27. {
  28. m_nPos -= nStart;
  29. memmove(m_pBuffer, m_pBuffer + nStart, m_nPos);
  30. nStart = 0;
  31. }
  32. int nlen = 0;
  33. //find pack tail
  34. for (i = 1; i < m_nPos; i++)
  35. {
  36. if (m_pBuffer[i] == '}')
  37. {
  38. nlen = i + 1;
  39. return nlen;
  40. }
  41. }
  42. return nlen;
  43. }