summaryrefslogblamecommitdiffstats
path: root/src/core/pvsClient.h
blob: e547e120d595a7973eb07b3435fc0d3ee6716eeb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
















                                                                                             
                  
























































































                                                                      









                                          



















                                                                                                              

                                     


      
/**
  *                 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