14#include <QNetworkRequest>
15#include <QNetworkReply>
16#include <QRecursiveMutex>
18#include <QWaitCondition>
23class QNetworkAccessManager;
38 QByteArray cert = QByteArray());
46 int safe_read(
void *data,
unsigned sz,
unsigned millisecs = 0);
47 qlonglong
Seek(qlonglong pos);
57 QNetworkReply::NetworkError
GetError()
const;
127 void Post(QEvent *event);
153 QNetworkAccessManager *
m_nam {
nullptr};
Thread to process NetStream requests.
static bool isAvailable()
static void PostEvent(QEvent *e)
QRecursiveMutex m_mutexNAM
QNetworkAccessManager * m_nam
bool StartRequest(NetStreamRequest *p)
static QRecursiveMutex * GetMutex()
QQueue< QEvent * > m_workQ
bool NewRequest(QEvent *event)
static bool AbortRequest(NetStreamAbort *p)
static NAMThread & manager()
NetworkAccessManager event loop thread.
void requestStarted(int, QNetworkReply *)
static QDateTime GetLastModified(const QUrl &url)
Stream content from a URI.
qlonglong BytesAvailable() const
qlonglong GetSize() const
void slotRequestStarted(int id, QNetworkReply *reply)
qlonglong Seek(qlonglong pos)
static bool isAvailable()
Public helpers.
int safe_read(void *data, unsigned sz, unsigned millisecs=0)
NetStreamRequest * m_pending
QNetworkReply::NetworkError GetError() const
static QDateTime GetLastModified(const QUrl &url)
enum NetStream::@17 kClosed
void slotSslErrors(const QList< QSslError > &errors)
bool WaitTillReady(std::chrono::milliseconds timeout)
Synchronous interface.
bool isStarted() const
Asynchronous interface.
static bool IsSupported(const QUrl &url)
RingBuffer interface.
NetStream(const QUrl &url, EMode mode=kPreferCache, QByteArray cert=QByteArray())
Network streaming request.
bool Request(const QUrl &url)
void ReadyRead(QObject *)
qlonglong GetReadPosition() const
QNetworkRequest m_request
QWaitCondition m_finished
QString GetErrorString() const
bool WaitTillFinished(std::chrono::milliseconds timeout)