玉兔远程控制 0.1.0-alpha.2
载入中...
搜索中...
未找到
ChannelSSHTunnel.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QSharedPointer>
6#include <QSocketNotifier>
7#include <QMutex>
8
9#include "ChannelSSH.h"
10#include "Backend.h"
11
22class PLUGIN_EXPORT CChannelSSHTunnel : public CChannelSSH
23{
24 Q_OBJECT
25
26public:
27 explicit CChannelSSHTunnel(CParameterSSHTunnel* parameter,
28 CParameterNet* remote,
29 CBackend *pBackend,
30 bool bWakeUp = true,
31 QObject *parent = nullptr);
32 virtual ~CChannelSSHTunnel();
33
34public:
35 int Process();
36 virtual int DoWait(bool bWrite, int timeout);
37 int GetSocket();
38
39protected:
40 virtual qint64 readData(char *data, qint64 maxlen) override;
41 virtual qint64 writeData(const char *data, qint64 len) override;
42
43private:
44 virtual int OnOpen(ssh_session session) override;
45 virtual void OnClose() override;
46
47private:
48 CParameterNet* m_pRemoteNet;
49 /*
50 QSocketNotifier* m_pSocketRead;
51 QSocketNotifier* m_pSocketWrite;
52 QSocketNotifier* m_pSocketException;
53 */
54};
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
Definition Backend.h:42
网络连接参数接口。此类仅在插件内有效。 其界面为 CParameterNetUI