Example #1
0
void plRingBuffer::ForceWindowSlide()
{
    int len = AmountBuffered();
    if(len > 0 && fStartPos != 0)
    {
        memmove(fBuffer, GetBufferStart(), len);
        fStartPos = 0;
        fEndPos = len;        
    }
}
Example #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;
}
Example #3
0
int plBufferedSocketWriter::WriteBlock(const char * data, int len, plTcpSocket & sck)
{
    int ans = kSuccessNoDataSent;
    
    if(len > BufferAvailable())
        ans = Flush(sck);
    
    if(ans >= 0)
        ans = WriteBlock(data,len);
    
    if(ans >= 0 && fFlushPoint >= 0 && fFlushPoint < AmountBuffered())
        ans = Flush(sck);
            
    return ans;
}