Major update:
- General bug fixes - Implement search for multi-character marker search in BufferCore Replaced FindChar() method with FindStr() method - Implemented LocalIO and LinkedIO in FunctionCore - Connect LocalIO with FD in SelectableCore - Implement Write buffer with Write Select in SelectableCore - Improve validation checks in SelectableCore - Use Handle ptr instead of Handle Names for Config methods
This commit is contained in:
@@ -91,6 +91,7 @@ struct SHandle {
|
||||
long InTimeout; // millisecs
|
||||
|
||||
// List / Tree
|
||||
TLocalIO * LocalIO;
|
||||
THandle * Parent;
|
||||
THandle * Next;
|
||||
};
|
||||
@@ -144,7 +145,7 @@ protected:
|
||||
bool RemoveHandle( THandle * Handle );
|
||||
bool DestroyHandle( THandle * Handle );
|
||||
|
||||
// Finding files
|
||||
// Finding Handles
|
||||
inline THandle * GetHandle( const char * HandleName )
|
||||
{
|
||||
if (!HandleName) return NULL;
|
||||
@@ -162,6 +163,20 @@ protected:
|
||||
return Handle;
|
||||
}
|
||||
|
||||
// Get Parameters
|
||||
inline int GetFD( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->FD : -1);
|
||||
};
|
||||
inline EConnectType GetType( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->Type : ctNone);
|
||||
};
|
||||
inline EConnectState GetState( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->State : csNone);
|
||||
};
|
||||
|
||||
// Port Operations
|
||||
virtual int OpenPort( THandle * Handle );
|
||||
|
||||
@@ -187,15 +202,16 @@ public:
|
||||
~CSelectableCore();
|
||||
|
||||
// Configuration
|
||||
THandle * CreateHandle( const char * HandleName );
|
||||
bool SetBuffers( const char * HandleName, int InBufSize, int OutBufSize, int InTimeout, const char * InMarker, int InMarkerLen );
|
||||
bool SerialConfig( const char * HandleName, int Baud, short DataBits, short StopBits, short Parity, short FlowCtrl, int Wait );
|
||||
THandle * CreateHandle( const char * HandleName, bool CreateIO = false );
|
||||
bool SetBuffers( THandle * Handle, int InBufSize, int OutBufSize, int InTimeout, const char * InMarker, int InMarkerLen );
|
||||
bool SerialConfig( THandle * Handle, int Baud, short DataBits, short StopBits, short Parity, short FlowCtrl, int Wait );
|
||||
|
||||
// Device Interface
|
||||
bool SetPortHandle( const char * HandleName, const char * FileName );
|
||||
bool SetSocketHandle( const char * HandleName, EConnectType Type, const char * Address, const int PortNo, bool KeepAlive );
|
||||
bool ClearHandle( const char * HandleName );
|
||||
bool SetPortHandle( THandle * Handle, const char * FileName );
|
||||
bool SetSocketHandle( THandle * Handle, EConnectType Type, const char * Address, const int PortNo, bool KeepAlive );
|
||||
bool ClearHandle( THandle * Handle );
|
||||
|
||||
// FD operations
|
||||
virtual int Open( const char * HandleName );
|
||||
|
||||
virtual bool Close( const char * HandleName, bool CloseChildren = false ) { return (Close( GetHandle( HandleName ), CloseChildren )); };
|
||||
@@ -207,21 +223,8 @@ public:
|
||||
virtual bool Write( const char * HandleName ) { return (Write( GetHandle( HandleName ))); };
|
||||
virtual bool Write( int FD ) { return (Write( GetHandle( FD ))); };
|
||||
|
||||
inline int GetFD( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->FD : -1);
|
||||
};
|
||||
inline EConnectType GetType( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->Type : ctNone);
|
||||
};
|
||||
inline EConnectState GetState( const char * HandleName ) {
|
||||
THandle * Handle = GetHandle( HandleName );
|
||||
return ((Handle)? Handle->State : csNone);
|
||||
};
|
||||
|
||||
// Function Interface
|
||||
virtual int Input( int FD, const char * Buffer, int BufLen );
|
||||
virtual int Input( const char *IOName, const char * Buffer, int BufLen = -1 );
|
||||
virtual bool Process();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user