20 Q_PROPERTY(
bool enabled READ enabled WRITE setEnabled NOTIFY
enabledChanged)
21 Q_PROPERTY(QString host READ host WRITE setHost NOTIFY
hostChanged)
22 Q_PROPERTY(quint16 port READ port WRITE setPort NOTIFY
portChanged)
23 Q_PROPERTY(QString vehicleId READ vehicleId WRITE setVehicleId NOTIFY
vehicleIdChanged)
28 Q_PROPERTY(
bool tlsEnabled READ tlsEnabled WRITE setTlsEnabled NOTIFY
tlsEnabledChanged)
29 Q_PROPERTY(
bool tlsVerifyPeer READ tlsVerifyPeer WRITE setTlsVerifyPeer NOTIFY
tlsVerifyPeerChanged)
49 Q_ENUM(RemoteProtocol)
50 static_assert(AutoFallback == 2,
"RemoteProtocol out of sync with TransportStrategy::Protocol");
55 bool enabled()
const {
return _enabled; }
57 void setEnabled(
bool enabled);
60 QString host()
const {
return _transport.
host(); }
62 void setHost(
const QString& host);
64 quint16 port()
const {
return _transport.
port(); }
66 void setPort(quint16 port);
68 QString vehicleId()
const {
return _vehicleId; }
70 void setVehicleId(
const QString&
id);
76 bool tcpConnected()
const {
return _transport.
tcpConnected(); }
78 bool tlsEnabled()
const {
return _transport.
tlsEnabled(); }
80 void setTlsEnabled(
bool enabled);
82 bool tlsVerifyPeer()
const {
return _transport.
tlsVerifyPeer(); }
84 void setTlsVerifyPeer(
bool verify);
86 bool compressionEnabled()
const {
return _compressionEnabled; }
88 void setCompressionEnabled(
bool enabled);
90 int compressionLevel()
const {
return _compressionLevel; }
92 void setCompressionLevel(
int level);
94 quint64 bytesSent()
const {
return _bytesSent; }
96 quint64 droppedEntries()
const {
return _droppedEntries; }
98 QString lastError()
const {
return _lastError; }
100 QString lastTlsError()
const {
return _lastTlsError; }
102 Q_INVOKABLE
void resetBytesSent();
103 Q_INVOKABLE
bool loadTlsCaCertificates(
const QString& filePath);
104 Q_INVOKABLE
bool loadTlsClientCertificate(
const QString& certPath,
const QString& keyPath);
106 int maxPendingEntries()
const {
return _maxPendingEntries; }
108 void setMaxPendingEntries(
int max);
134 void _setLastError(
const QString&
error);
135 void _setLastTlsError(
const QString&
error);
136 QByteArray _formatEntry(
const LogEntry& entry)
const;
137 QByteArray _maybeCompress(
const QByteArray& data)
const;
139 bool _enabled =
false;
142 bool _compressionEnabled =
false;
143 int _compressionLevel = 6;
145 quint64 _bytesSent = 0;
146 quint64 _droppedEntries = 0;
148 QString _lastTlsError;
151 QChronoTimer _batchTimer{std::chrono::milliseconds{kBatchIntervalMs}};
152 QList<QByteArray> _batch;
153 int _maxPendingEntries = 1000;
155 static constexpr int kBatchSize = 50;
156 static constexpr int kBatchIntervalMs = 200;