8#include <QtCore/QByteArrayView>
9#include <QtCore/QDeadlineTimer>
10#include <QtCore/QString>
23 GPSReadResult read(std::span<uint8_t> buffer, std::chrono::milliseconds timeout)
override;
27 virtual QIODevice*
device()
const = 0;
34 virtual qint64
take(std::span<uint8_t> buffer);
49 bool waitUntil(
const std::function<
bool()>& done, QDeadlineTimer deadline);
52 bool waitForDevice(
const std::function<
bool()>& ready, QDeadlineTimer deadline);
virtual qint64 take(std::span< uint8_t > buffer)
Takes buffered input.
virtual void retire()
Retires the connection after a failed write that accepted bytes; by default closes the device.
GPSWriteResult writeData(QByteArrayView bytes, QDeadlineTimer deadline) override
Receives non-empty bytes and an unexpired, capped deadline that implementations must honor.
virtual GPSReadResult readFailure() const
Describes a failed link; by default, a closed connection with the device's error.
bool waitUntil(const std::function< bool()> &done, QDeadlineTimer deadline)
bool waitForDevice(const std::function< bool()> &ready, QDeadlineTimer deadline)
GPSReadResult read(std::span< uint8_t > buffer, std::chrono::milliseconds timeout) override
virtual QIODevice * device() const =0
The open device, or null before open().
virtual void waitWritten(QDeadlineTimer &deadline)
Waits for queued bytes to drain. May expire deadline to end the write.
virtual bool readUnavailable() const
Whether read() fails without waiting; by default, when there is no device.
virtual bool waitReadable(QDeadlineTimer deadline)
Waits until input is buffered. Input reported buffered is delivered even after the link fails.
virtual qint64 confirmedWritten(int accepted, qint64 drained)
GPSTransport(GPSCancelToken cancelToken)