/* * BufferCore.h * * Created on: 18 May 2016 * Author: wentzelc */ #ifndef REDACORE_BUFFERCORE_H_ #define REDACORE_BUFFERCORE_H_ // redA Libraries /* none */ // Standard C/C++ Libraries /* none */ //--------------------------------------------------------------------------- class CBuffer { private: // Buffer Definition char * Buffer; // Memory allocated to buffer int BufSize; // Size of allocated buffer // Buffer pointers int BufStart; // First unread characters on buffer int BufEnd; // Next write position for new data (End of unread data + 1) int BufLen; // Total unread characters on buffer // Temporary output buffer char * OutBuffer; // Temporary output buffer for "stitched" (rollover) data public: // Life Cycle CBuffer( int BufferSize ); ~CBuffer(); // Direct Operations int Reset(); int Set( char * Data, int Len ); int Get( char ** Data, int MaxLen = -1 ); int Clear( int ClearLen ); // FiFo operations int Push( char * Data, int Len ); int Pop( char ** Data, int MaxLen = -1 ); // File operations int ReadFD( int Handle, int MaxRead = -1 ); int WriteFD( int Handle, int MaxWrite = -1 ); // Character Operations char GetChar( int Pos ); bool FindChar( char SearchChar, int &Pos ); // Miscellaneous int Size() { return BufSize; }; int Len() { return BufLen; }; }; //--------------------------------------------------------------------------- #endif /* REDACORE_BUFFERCORE_H_ */