aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:43 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-04-19 22:30:43 -0400
commit094918f048c81474b22f9ba2940c96dc4033d753 (patch)
tree2b89c77ad7dc9c55e9ba383f23f9f25b82df358e /SQLiteStudio3/coreSQLiteStudio/common/blockingsocket.h
parent640fff60ceecde402131937dddb3458f7a003e9c (diff)
parenta308f430f694423064ebc86fd0506c8c6fdb3d93 (diff)
Merge tag 'upstream/3.0.5'
Upstream version 3.0.5 # gpg: Signature made Sun 19 Apr 2015 10:30:41 PM EDT using RSA key ID EBE9BD91 # gpg: Good signature from "Unit 193 <unit193@gmail.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.org>" # gpg: aka "Unit 193 <unit193@ubuntu.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.com>"
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