diff 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
line wrap: on
line diff
--- a/vamp-client/ProcessQtTransport.h	Wed Jan 18 14:53:07 2017 +0000
+++ b/vamp-client/ProcessQtTransport.h	Thu Jan 19 09:57:58 2017 +0000
@@ -187,7 +187,13 @@
                 size_t formerSize = buffer.size();
                 buffer.resize(formerSize + byteCount);
                 m_process->read(buffer.data() + formerSize, byteCount);
-                complete = m_completenessChecker->isComplete(buffer);
+                switch (m_completenessChecker->check(buffer)) {
+                case MessageCompletenessChecker::Complete: complete = true; break;
+                case MessageCompletenessChecker::Incomplete: break;
+                case MessageCompletenessChecker::Invalid:
+                    throw std::runtime_error
+                        ("Invalid message received: corrupt stream from server?");
+                }
             }
         }