| 107 | } |
| 108 | |
| 109 | void CMakeServer::processOutput() |
| 110 | { |
| 111 | Q_ASSERT(m_localSocket); |
| 112 | |
| 113 | const auto openTag = ::openTag(); |
| 114 | const auto closeTag = ::closeTag(); |
| 115 | |
| 116 | m_buffer += m_localSocket->readAll(); |
| 117 | for(; m_buffer.size() > openTag.size(); ) { |
| 118 | |
| 119 | Q_ASSERT(m_buffer.startsWith(openTag)); |
| 120 | const int idx = m_buffer.indexOf(closeTag, openTag.size()); |
| 121 | if (idx >= 0) { |
| 122 | emitResponse(m_buffer.mid(openTag.size(), idx - openTag.size())); |
| 123 | m_buffer.remove(0, idx + closeTag.size()); |
| 124 | } else { |
| 125 | break; |
| 126 | } |
| 127 | } |
| 128 | } |
| 129 | |
| 130 | void CMakeServer::emitResponse(const QByteArray& data) |
| 131 | { |