c@90: c@90: #ifndef PIPER_SYNCHRONOUS_TRANSPORT_H c@90: #define PIPER_SYNCHRONOUS_TRANSPORT_H c@90: c@90: #include c@90: c@90: namespace piper { c@90: c@90: class SynchronousTransport // interface c@90: { c@90: public: c@90: //!!! how to handle errors -- exception or return value? often an c@90: //!!! error (e.g. server has exited) may mean the transport can no c@90: //!!! longer be used at all c@90: virtual std::vector call(const char *data, size_t bytes) = 0; c@90: c@90: virtual bool isOK() const = 0; c@90: }; c@90: c@90: class MessageCompletenessChecker // interface c@90: { c@90: public: c@90: virtual bool isComplete(const std::vector &message) const = 0; c@90: }; c@90: c@90: } c@90: c@90: #endif