summaryrefslogtreecommitdiffstats
path: root/src/core/pvsClient.h
blob: 180995a864e317356cfa245690c3519622a25306 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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