Esempio n. 1
0
void plRingBuffer::ForceWindowSlide()
{
    int len = AmountBuffered();
    if(len > 0 && fStartPos != 0)
    {
        memmove(fBuffer, GetBufferStart(), len);
        fStartPos = 0;
        fEndPos = len;        
    }
}
Esempio n. 2
0
bool plRingBuffer::Get(char * data, int len)
{
    bool ans = false;
    
    if (len < AmountBuffered())
    {
        memcpy(data, GetBufferStart(), len);
        fStartPos += len;
        Compress();
        ans = true;
    }
    return ans;
}
Esempio n. 3
0
// 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;
}