Mercurial > hg > piper-cpp
comparison vamp-client/ProcessQtTransport.h @ 146:c4f841ccb208
Allow the completeness checker to report failure (invalid message) as well as incompleteness
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Thu, 19 Jan 2017 09:57:58 +0000 |
parents | 228a66adfb30 |
children | c3b9a584b42b |
comparison
equal
deleted
inserted
replaced
145:228a66adfb30 | 146:c4f841ccb208 |
---|---|
185 } | 185 } |
186 } else { | 186 } else { |
187 size_t formerSize = buffer.size(); | 187 size_t formerSize = buffer.size(); |
188 buffer.resize(formerSize + byteCount); | 188 buffer.resize(formerSize + byteCount); |
189 m_process->read(buffer.data() + formerSize, byteCount); | 189 m_process->read(buffer.data() + formerSize, byteCount); |
190 complete = m_completenessChecker->isComplete(buffer); | 190 switch (m_completenessChecker->check(buffer)) { |
191 case MessageCompletenessChecker::Complete: complete = true; break; | |
192 case MessageCompletenessChecker::Incomplete: break; | |
193 case MessageCompletenessChecker::Invalid: | |
194 throw std::runtime_error | |
195 ("Invalid message received: corrupt stream from server?"); | |
196 } | |
191 } | 197 } |
192 } | 198 } |
193 | 199 |
194 return buffer; | 200 return buffer; |
195 } | 201 } |