24    int Initialize(rdpContext* context);
 
   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;
 
   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);