summaryrefslogtreecommitdiffstats
path: root/src/core/pvsClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/pvsClient.h')
-rw-r--r--src/core/pvsClient.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/core/pvsClient.h b/src/core/pvsClient.h
new file mode 100644
index 0000000..180995a
--- /dev/null
+++ b/src/core/pvsClient.h
@@ -0,0 +1,129 @@
+/**
+ * PVSConnection
+ *
+ * the representation of a connection from a PVSClient to the PVSServer
+ * it holds a pointer the PVSClientConnection we got from a PVS(Listen)Server
+ * and (if present) a pointer to a VNCConnection to the same host as the PVSClientConnection
+ */
+
+
+
+
+#ifndef _PVSCONNECTION_H_
+#define _PVSCONNECTION_H_
+#include "vncConnection.h"
+#include "src/net/pvsClientConnection.h"
+#include "src/gui/frame.h"
+#include <QtCore/QThread>
+
+class PVSServer;
+class VNCConnection;
+class PVSClient;
+class ConnectionFrame;
+class Frame;
+
+class PVSClient : public QObject
+{
+ Q_OBJECT
+ friend class PVSServer;
+ friend class VNCConnection;
+
+public:
+ // C'Tor and D'Tor
+ PVSClient(PVSClientConnection *newClient);
+ ~PVSClient();
+
+ // heartbeat
+ void tick();
+
+
+ //general stuff
+ char* getHost();
+ QString getIp();
+ QString getDesktopName();
+ QString getUserName();
+ QString getLoginName();
+ bool getVNCAllowed();
+ int getPort();
+ void setUsername(QString name)
+ {
+ _userName = name;
+ };
+ void setLoginName(QString ln)
+ {
+ _loginName = ln;
+ };
+
+ // methods for/from vnConnection
+ void requestVNCConnect();
+ void setVncPassword(QString password);
+ void setVncRwPassword(QString password);
+
+ QString getPassword();
+ QString getRWPassword();
+
+ void setProject(bool value);
+ void setAllowed(bool allow);
+ void setVncPort(int newPort);
+ void shutDownVNC();
+ void shutDownClient();
+ /*bool gotFrame(){return _gotFrame;};
+ void setFrame(bool gotFrame){_gotFrame = gotFrame;};*/
+ ConnectionFrame* getConnectionFrame()
+ {
+ return _connectionFrame;
+ };
+ void setConnectionFrame(ConnectionFrame* nFrame)
+ {
+ _connectionFrame = nFrame;
+ };
+ void setFrame(Frame *f)
+ {
+ _vncFrame = f;
+ };
+ Frame* getFrame()
+ {
+ return _vncFrame;
+ };
+ VNCConnection* getVNCConnection()
+ {
+ return _vncConnection;
+ };
+ PVSClientConnection* getPVSClientConnection()
+ {
+ return _pvsClientConnection;
+ };
+
+ // methods for/from PVSClientConnection
+ void onClientDisconnected();
+ bool getLocked();
+ bool sendMessage(PVSMsgType type, QString ident, QString message);
+ bool sendMessage(PVSMsg message);
+
+ void setClientindex(int ind) { _clientIndex = ind; }
+ int getClientindex() { return _clientIndex; }
+ int getConnectionId() { return _pvsClientConnection->getID(); }
+
+private Q_SLOTS:
+ void vncFinished();
+
+private:
+
+ void vncProbe();
+ Frame* _vncFrame;
+ VNCConnection* _vncConnection;
+ PVSClientConnection *_pvsClientConnection;
+ ConnectionFrame* _connectionFrame;
+ int _vncPort;
+ bool _gotFrame;
+ QString _hostString;
+ QString _hostName;
+ QString _userName;
+ QString _loginName;
+ QString _vncPassword;
+ QString _vncRwPassword;
+ int _clientIndex;
+ bool _vncAllowed, _vncRequested, _vncPasswordReceived, _vncRwPasswordReceived, _vncInitMutex, _vncProject;
+};
+
+#endif