5 #include <QHostAddress>
33 bool use_shared_thread =
false);
35 bool ConnectToHost(
const QString &
hostname, quint16 port);
36 bool ConnectToHost(
const QHostAddress &address, quint16 port);
37 void DisconnectFromHost(
void);
40 bool error_dialog_desired =
false);
43 bool Announce(
const QStringList &new_announce);
45 void SetAnnounce(
const QStringList &new_announce);
49 { m_disableReadyReadCallback.fetchAndStoreOrdered((enabled) ? 0 : 1); }
51 bool SendReceiveStringList(
52 QStringList &list,
uint min_reply_length = 0,
53 std::chrono::milliseconds timeoutMS = kLongTimeout);
55 bool ReadStringList(QStringList &list, std::chrono::milliseconds timeoutMS = kShortTimeout);
56 bool WriteStringList(
const QStringList &list);
58 bool IsConnected(
void)
const;
59 bool IsDataAvailable(
void);
61 QHostAddress GetPeerAddress(
void)
const;
62 int GetPeerPort(
void)
const;
63 int GetSocketDescriptor(
void)
const;
66 int Write(
const char *data,
int size);
67 int Read(
char *data,
int size, std::chrono::milliseconds max_wait);
76 return QString(
"MythSocket(%1:%2): ")
77 .arg((intptr_t)(
this), 0, 16).arg(GetSocketDescriptor());
82 void CallReadyRead(
void);
85 void ConnectHandler(
void);
86 void ErrorHandler(QAbstractSocket::SocketError err);
87 void AboutToCloseHandler(
void);
88 void DisconnectHandler(
void);
89 void ReadyReadHandler(
void);
90 void CallReadyReadHandler(
void);
92 void ReadStringListReal(QStringList *list, std::chrono::milliseconds timeoutMS,
bool *ret);
93 void WriteStringListReal(
const QStringList *list,
bool *ret);
94 void ConnectToHostReal(
const QHostAddress& addr, quint16 port,
bool *ret);
95 void DisconnectFromHostReal(
void);
97 void WriteReal(
const char *data,
int size,
int *ret);
98 void ReadReal(
char *data,
int size, std::chrono::milliseconds max_wait_ms,
int *ret);
101 void IsDataAvailableReal(
bool *ret)
const;
106 QTcpSocket *m_tcpSocket {
nullptr};
109 qintptr m_socketDescriptor {-1};
114 QAtomicInt m_disableReadyReadCallback {0};
115 bool m_connected {
false};
118 mutable QAtomicInt m_dataAvailable {0};
119 bool m_isValidated {
false};
120 bool m_isAnnounced {
false};