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 }