18 friend class NTRIPHttpTransportTest;
21 static constexpr std::chrono::milliseconds kConnectTimeout{10000};
22 static constexpr std::chrono::milliseconds kDataWatchdog{30000};
23 static constexpr int kMaxHttpHeaderSize = 32768;
28 void start()
override;
30 void sendNMEA(
const QByteArray& nmea)
override;
32 void setRtcmWhitelist(
const QVector<int>& messageIds)
override { _rtcmParser.setWhitelist(messageIds); }
47 static HttpStatus parseHttpStatusLine(
const QString& line);
49 static bool isHttpSuccess(
int code) {
return code >= 200 && code < 300; }
55 bool credentialsInClear =
false;
62 void _failFatal(
NTRIPError code,
const QString& msg, QAbstractSocket* socket);
63 void _sendHttpRequest();
65 void _handleHttpResponse();
66 void _handleRtcmData();
67 void _parseRtcm(
const QByteArray& buffer);
71 QTcpSocket* _socket =
nullptr;
72 QChronoTimer _connectTimeoutTimer;
73 QChronoTimer _dataWatchdogTimer;
76 bool _httpHandshakeDone =
false;
77 bool _stopped =
false;
79 qint64 _postOkTimestampMs = 0;
81 QByteArray _httpResponseBuf;