void plRingBuffer::ForceWindowSlide() { int len = AmountBuffered(); if(len > 0 && fStartPos != 0) { memmove(fBuffer, GetBufferStart(), len); fStartPos = 0; fEndPos = len; } }
bool plRingBuffer::Get(char * data, int len) { bool ans = false; if (len < AmountBuffered()) { memcpy(data, GetBufferStart(), len); fStartPos += len; Compress(); ans = true; } return ans; }
// fill the buffer with as much data as possible (only for read buffers) bool wxStreamBuffer::FillBuffer() { wxInputStream *inStream = GetInputStream(); // It's legal to have no stream, so we don't complain about it just return false if ( !inStream ) return false; size_t count = inStream->OnSysRead(GetBufferStart(), GetBufferSize()); if ( !count ) return false; m_buffer_end = m_buffer_start + count; m_buffer_pos = m_buffer_start; return true; }