15 _tcpTransport->
close();
18 _udpTransport->
close();
29 _tcpTransport->
close();
34 _tcpReconnectMs = kInitialReconnectMs;
39 if (_host ==
host && _port ==
port) {
50 _tcpTransport->
close();
54 _udpTransport->
close();
55 _udpTransport->deleteLater();
56 _udpTransport =
nullptr;
58 _tcpReconnectMs = kInitialReconnectMs;
67 _tlsEnabled = enabled;
69 _tcpTransport->
close();
76 _tlsVerifyPeer = verify;
78 _tcpTransport->
close();
93 _tlsClientCert = cert;
104void TransportStrategy::_ensureUdp()
106 if (!_udpTransport) {
112void TransportStrategy::_ensureTcp()
114 if (!_tcpTransport) {
123void TransportStrategy::_configureTcp()
125 if (!_tcpTransport) {
131 if (!_tlsCaCerts.isEmpty()) {
134 if (!_tlsClientCert.isNull()) {
139bool TransportStrategy::_shouldUseTcp()
const
145 _udpTransport->
failureCount() >= kUdpFailureThreshold) {
157 if (_host.isEmpty() || _port == 0) {
161 if (_shouldUseTcp()) {
166 _tcpReconnectMs = qMin(_tcpReconnectMs * 2, kMaxReconnectMs);
170 if (!_tcpTransport->
send(data)) {
174 return static_cast<quint64
>(data.size()) + 4;
178 if (!_udpTransport->
send(data)) {
181 return static_cast<quint64
>(data.size());
186 if (_shouldUseTcp()) {
187 return _tcpTransport && _tcpTransport->
isConnected();
189 return _udpTransport !=
nullptr;
194 return _tcpTransport && _tcpTransport->
isConnected();
201void TransportStrategy::_onTcpConnected()
203 _tcpReconnectMs = kInitialReconnectMs;
207void TransportStrategy::_onTcpDisconnected()
212void TransportStrategy::_onTransportError(
const QString& message)
#define QGC_LOGGING_CATEGORY(name, categoryStr)
void errorOccurred(const QString &message)
bool send(const QByteArray &data) override
void setTlsCaCertificates(const QList< QSslCertificate > &certs)
void setTlsEnabled(bool enabled)
void setTlsVerifyPeer(bool verify)
void setTlsClientCertificate(const QSslCertificate &cert, const QSslKey &key)
bool isConnected() const override
void setTarget(const QString &host, quint16 port)
void setTlsClientCertificate(const QSslCertificate &cert, const QSslKey &key)
void errorOccurred(const QString &message)
void setTarget(const QString &host, quint16 port)
~TransportStrategy() override
Protocol protocol() const
void setTlsCaCertificates(const QList< QSslCertificate > &certs)
void setTlsVerifyPeer(bool verify)
bool tcpConnected() const
quint64 send(const QByteArray &data)
Send pre-formatted payload. Returns bytes sent (0 on failure/pending).
void setTlsEnabled(bool enabled)
bool isConnected() const
Whether the active transport is connected and ready.
void reset()
Reset transports (e.g. after host/port change).
void setProtocol(Protocol protocol)
bool send(const QByteArray &data) override
void setTarget(const QString &host, quint16 port)