summaryrefslogtreecommitdiffstats
path: root/src/core/pvsClient.h
blob: e547e120d595a7973eb07b3435fc0d3ee6716eeb (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
130
131
132
133
134
135
136
137
138
139
140
141
142
/**
  *                 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>
#include <QVector>

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(); }

    QVector<QString> getProcessesVector();


public slots:
    void processesVectorAdd(QString msg);
    void clearProcessesVector();

signals:
    void processVectorReady( bool );

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;
    QVector<QString> processesVector;

};

#endif