diff --git a/SelectableCore.h b/SelectableCore.h index 0324f9f..499226e 100644 --- a/SelectableCore.h +++ b/SelectableCore.h @@ -9,7 +9,7 @@ #define REDACORE_SELECTABLECORE_H_ // Standard C/C++ Libraries -/* none */ +#include // redA Libraries #include "FunctionCore.h" @@ -18,9 +18,9 @@ // Types required for connections typedef enum { ctNone = 0, ctSerial = 1, ctLinePrinter = 2, ctForkPipe = 3, ctUNIXserver = 4, ctUNIXclient = 5, ctUNIXremote = 6, - ctUDPserver = 7, ctUDPclient = 8, ctUDPremote = 9, ctTCPserver = 10, ctTCPclient = 11, ctTCPremote = 12 } EConnectType; + ctUDPserver = 7, ctUDPclient = 8, ctUDPremote = 9, ctTCPserver = 10, ctTCPclient = 11, ctTCPremote = 12, ctCustom } EConnectType; const char ConnectTypeName[][20] = { "None", "Serial Port", "Line Printer", "Fork Pipe", "UNIX Server", "UNIX Client", "UNIX Remote Client", - "UDP Server", "UDP Client", "UDP Remote Client", "TCP Server", "TCP Client", "TCP Remote Client" }; + "UDP Server", "UDP Client", "UDP Remote Client", "TCP Server", "TCP Client", "TCP Remote Client", "Custom" }; typedef enum { csNone = 0, csOpenRequest = 1, csWaitingtoOpen = 2, csOpen = 3, csDataWaiting = 4, csClosed = 5, csFailed = 6 } EConnectState; const char ConnectStateName[][15] = { "None", "OpenRequest", "WaitingToOpen", "Open", "DataWaiting", "Closed", "Failed" }; @@ -278,6 +278,7 @@ public: // General port parameters THandle * CreateHandle( const char * HandleName, bool CreateChannel ); + bool SetCallback( THandle * Handle, EConnectState pState, FHandleCallback pCallback ); bool SetAutoManage( THandle * Handle, bool AutoManage, bool Persistent, int ReopenDelay = 0, int CloseTimeout = 0 ); bool SetInBuffer( THandle * Handle, int InBufSize, int InTimeout, const char * InMarker, int InMarkerLen ); @@ -290,6 +291,7 @@ public: bool SetForkPipeHandle( THandle * Handle, const char * ExecPath ); bool SetUnixHandle( THandle * Handle, EConnectType Type, const char * FileName, short Queue ); bool SetSocketHandle( THandle * Handle, EConnectType Type, const char * HostName, const char * PortName, short Queue, long ResolveDelay ); + bool ClearHandle( THandle * Handle ); // FD Operations