玉兔远程控制 0.0.36
载入中...
搜索中...
未找到
ConnectLayer.h
1// Author: Kang Lin <kl222@126.com>
2
3#ifndef CONNECTLAYER_H
4#define CONNECTLAYER_H
5
6#pragma once
7
8#include <QObject>
9
10#include "ConnectFreeRDP.h"
11
17class CConnectLayer : public QObject
18{
19 Q_OBJECT
20public:
21 explicit CConnectLayer(CConnectFreeRDP* connect);
22 virtual ~CConnectLayer();
23
24 int Initialize(rdpContext* context);
25 int Clean();
26
27private:
28 virtual int OnInit(rdpContext* context) = 0;
29 virtual int OnClean() = 0;
30 virtual int OnLayerRead(void* data, int bytes) = 0;
31 virtual int OnLayerWrite(const void* data, int bytes) = 0;
32 virtual BOOL OnLayerWait(BOOL waitWrite, DWORD timeout) = 0;
33 virtual HANDLE OnLayerGetEvent() = 0;
34
35 static rdpTransportLayer* cb_transport_connect_layer(
36 rdpTransport* transport,
37 const char* hostname, int port, DWORD timeout);
38 virtual rdpTransportLayer* OnTransportConnectLayer(rdpContext *context);
39 static int cbLayerRead(void* userContext, void* data, int bytes);
40 static int cbLayerWrite(void* userContext, const void* data, int bytes);
41 static BOOL cbLayerClose(void* userContext);
42 virtual BOOL OnLayerClose();
43 static BOOL cbLayerWait(void* userContext, BOOL waitWrite, DWORD timeout);
44 static HANDLE cbLayerGetEvent(void* userContext);
45
46protected:
47 CConnectFreeRDP* m_pConnect;
48 CParameterFreeRDP* m_pParameter;
49
50private:
52 {
53 CConnectLayer* pThis;
54 };
55};
56
57#endif // CONNECTLAYER_H
The connect layer class
[Declare CParameterFreeRDP]