pqassicbrhelp.cpp 829 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "pqassicbrhelp.h"
  2. namespace PQ {
  3. AssicBrHelp::AssicBrHelp()
  4. {
  5. }
  6. AssicBrHelp::~AssicBrHelp()
  7. {
  8. }
  9. void AssicBrHelp::readed(const QByteArray &data)
  10. {
  11. int newstart = 0;
  12. int scan = m_inbuffer.size();
  13. m_inbuffer.append(data);
  14. while (newstart < m_inbuffer.size()) {
  15. int start = newstart;
  16. int end = m_inbuffer.indexOf('\n', scan);
  17. if (end < 0) {
  18. m_inbuffer.remove(0, start);
  19. return;
  20. }
  21. newstart = end + 1;
  22. scan = newstart;
  23. if (end == start)
  24. continue;
  25. if (m_inbuffer.at(end - 1) == '\r') {
  26. --end;
  27. if (end == start)
  28. continue;
  29. }
  30. QByteArray line(m_inbuffer.constData() + start, end - start);
  31. doHandle(line);
  32. }
  33. m_inbuffer.clear();
  34. }
  35. }