aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:21 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:21 -0400
commita308f430f694423064ebc86fd0506c8c6fdb3d93 (patch)
treeceacd24fecf92f40980f8d8f3fd169e317c886af /SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
parenta5b034d4a9c44f9bc1e83b01de82530f8fc63013 (diff)
Imported Upstream version 3.0.5upstream/3.0.5
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h b/SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
new file mode 100644
index 0000000..2a42df7
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
@@ -0,0 +1,44 @@
+#ifndef THREADEDSOCKET_H
+#define THREADEDSOCKET_H
+
+#include "coreSQLiteStudio_global.h"
+#include <QObject>
+#include <QAbstractSocket>
+#include <QMutex>
+
+class BlockingSocketPrivate;
+class ThreadWithEventLoop;
+
+class API_EXPORT BlockingSocket : public QObject
+{
+ Q_OBJECT
+
+ public:
+ BlockingSocket(QObject* parent = nullptr);
+ ~BlockingSocket();
+
+ QString getErrorText();
+ QAbstractSocket::SocketError getErrorCode();
+ bool connectToHost(const QString& host, int port);
+ void disconnectFromHost();
+ bool isConnected();
+ bool send(const QByteArray& bytes);
+ QByteArray read(qint64 count, int timeout = 30000, bool* ok = nullptr);
+ void quit();
+ void exit();
+
+ private:
+ ThreadWithEventLoop* socketThread = nullptr;
+ BlockingSocketPrivate* socket = nullptr;
+ QMutex socketOperationMutex;
+
+ signals:
+ void callForConnect(const QString& host, int port, bool& result);
+ void callForDisconnect();
+ void callForIsConnected(bool& connected);
+ void callForSend(const QByteArray& bytes, bool& result);
+ void callForRead(qint64 count, int timeout, QByteArray& resultBytes, bool& result);
+ void disconnected();
+};
+
+#endif // THREADEDSOCKET_H