blob: e547e120d595a7973eb07b3435fc0d3ee6716eeb (
plain) (
tree)
|
|
/**
* 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
|