Mercurial > hg > piper-cpp
view vamp-client/SynchronousTransport.h @ 116:d15cb1151d76
Add JSON support directly to the server. Had hoped to avoid this (using Capnp as canonical in the server and then converting externally as necessary) but it's just too useful for debugging purposes when bundled with client app
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Thu, 27 Oct 2016 11:39:41 +0100 |
parents | 427c4c725085 |
children | ff3fd8d1b2dc |
line wrap: on
line source
#ifndef PIPER_SYNCHRONOUS_TRANSPORT_H #define PIPER_SYNCHRONOUS_TRANSPORT_H #include <vector> #include <cstdlib> namespace piper_vamp { namespace client { class MessageCompletenessChecker // interface { public: virtual ~MessageCompletenessChecker() = default; virtual bool isComplete(const std::vector<char> &message) const = 0; }; class SynchronousTransport // interface { public: virtual ~SynchronousTransport() = default; //!!! I do not take ownership virtual void setCompletenessChecker(MessageCompletenessChecker *) = 0; //!!! how to handle errors -- exception or return value? often an //!!! error (e.g. server has exited) may mean the transport can no //!!! longer be used at all virtual std::vector<char> call(const char *data, size_t bytes) = 0; virtual bool isOK() const = 0; }; } } #endif