1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- GNU General Public License version 3 notice
- Copyright (C) 2012 Mihawk <luiz@netdome.biz>. All rights reserved.
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see < http://www.gnu.org/licenses/ >.
- */
- /* SSH client for connecting to QWNET central */
- #ifndef SSHCLIENT_H
- #define SSHCLIENT_H
- #include <QObject>
- #include <QString>
- class QProcess;
- class QDateTime;
- class QStringList;
- class App;
- class SshClient : public QObject
- {
- Q_OBJECT
- public:
- enum Error { NoError, ConnectionTimedOutError };
- explicit SshClient(App* app, QObject *parent = 0);
- ~SshClient();
- bool connectToHost(const QString& user, const QString &host);
- bool isConnected() const;
- void disconnectFromHost();
- void write(const QString& data);
- signals:
- void error(Error errorCode);
- void connected();
- protected:
- void timerEvent(QTimerEvent *e);
- private slots:
- void read();
- void exited(int exitCode);
- private:
- App* myApp;
- QProcess* myProcess;
- QRegExp* myCommandRegex;
- bool myConnectedFlag;
- int myConnectionTimerID;
- int myPingTimerID;
- int myPongTimerID;
- QStringList* myClients;
- QString myUsername;
- QString myHostname;
- void parse(const QDateTime& time, const QString& command, const QString& commandData);
- void ping();
- void pong();
- void reconnect();
- };
- #endif // SSHCLIENT_H
|