Rabbit Remote Control 0.1.0-bate14
Loading...
Searching...
No Matches
ConnectLayer.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QObject>
6
7#include "BackendFreeRDP.h"
8
14class CConnectLayer : public QObject
15{
16 Q_OBJECT
17public:
18 explicit CConnectLayer(CBackendFreeRDP* pOperate);
19 virtual ~CConnectLayer();
20
21 int Initialize(rdpContext* context);
22 int Clean();
23
24private:
25 virtual int OnInit(rdpContext* context) = 0;
26 virtual int OnClean() = 0;
27 virtual int OnLayerRead(void* data, int bytes) = 0;
28 virtual int OnLayerWrite(const void* data, int bytes) = 0;
29 virtual BOOL OnLayerWait(BOOL waitWrite, DWORD timeout) = 0;
30 virtual HANDLE OnLayerGetEvent() = 0;
31
32 static rdpTransportLayer* cb_transport_connect_layer(
33 rdpTransport* transport,
34 const char* hostname, int port, DWORD timeout);
35 virtual rdpTransportLayer* OnTransportConnectLayer(rdpContext *context);
36 static int cbLayerRead(void* userContext, void* data, int bytes);
37 static int cbLayerWrite(void* userContext, const void* data, int bytes);
38 static BOOL cbLayerClose(void* userContext);
39 virtual BOOL OnLayerClose();
40 static BOOL cbLayerWait(void* userContext, BOOL waitWrite, DWORD timeout);
41 static HANDLE cbLayerGetEvent(void* userContext);
42
43protected:
44 CBackendFreeRDP* m_pOperate;
45 CParameterFreeRDP* m_pParameter;
46
47private:
49 {
50 CConnectLayer* pThis;
51 };
52};
[Declare CParameterFreeRDP]