| 
    FreeRDP
    
   | 
 

Data Structures | |
| struct | RingBuffer | 
| ring buffer meta data  More... | |
| struct | DataChunk | 
| a piece of data in the ring buffer, exactly like a glibc iovec  More... | |
Functions | |
| FREERDP_API BOOL | ringbuffer_init (RingBuffer *rb, size_t initialSize) | 
| FREERDP_API void | ringbuffer_destroy (RingBuffer *ringbuffer) | 
| FREERDP_API size_t | ringbuffer_used (const RingBuffer *ringbuffer) | 
| FREERDP_API size_t | ringbuffer_capacity (const RingBuffer *ringbuffer) | 
| FREERDP_API BOOL | ringbuffer_write (RingBuffer *rb, const BYTE *ptr, size_t sz) | 
| FREERDP_API BYTE * | ringbuffer_ensure_linear_write (RingBuffer *rb, size_t sz) | 
| FREERDP_API BOOL | ringbuffer_commit_written_bytes (RingBuffer *rb, size_t sz) | 
| FREERDP_API int | ringbuffer_peek (const RingBuffer *rb, DataChunk chunks[2], size_t sz) | 
| FREERDP_API void | ringbuffer_commit_read_bytes (RingBuffer *rb, size_t sz) | 
| FREERDP_API size_t ringbuffer_capacity | ( | const RingBuffer * | ringbuffer | ) | 
returns the capacity of the ring buffer
| ringbuffer | A pointer to the ringbuffer | 

| FREERDP_API void ringbuffer_commit_read_bytes | ( | RingBuffer * | rb, | 
| size_t | sz | ||
| ) | 
move ahead the read head in case some byte were read using ringbuffer_peek() This function is used to commit the bytes that were effectively consumed.
| rb | the ring buffer | 
| sz | the number of bytes to read | 


| FREERDP_API BOOL ringbuffer_commit_written_bytes | ( | RingBuffer * | rb, | 
| size_t | sz | ||
| ) | 
move ahead the write head in case some byte were written directly by using a pointer retrieved via ringbuffer_ensure_linear_write(). This function is used to commit the written bytes. The provided size should not exceed the size ensured by ringbuffer_ensure_linear_write()
| rb | the ring buffer | 
| sz | the number of bytes that have been written | 

| FREERDP_API void ringbuffer_destroy | ( | RingBuffer * | ringbuffer | ) | 
destroys internal data used by this ringbuffer
| ringbuffer | A pointer to the ringbuffer | 

| FREERDP_API BYTE* ringbuffer_ensure_linear_write | ( | RingBuffer * | rb, | 
| size_t | sz | ||
| ) | 
ensures that we have sz bytes available at the write head, and return a pointer on the write head
| rb | the ring buffer | 
| sz | the size to ensure | 


| FREERDP_API BOOL ringbuffer_init | ( | RingBuffer * | rb, | 
| size_t | initialSize | ||
| ) | 
initialise a ringbuffer
| initialSize | the initial capacity of the ringBuffer | 

| FREERDP_API int ringbuffer_peek | ( | const RingBuffer * | rb, | 
| DataChunk | chunks[2], | ||
| size_t | sz | ||
| ) | 
peeks the buffer chunks for sz bytes and returns how many chunks are filled. Note that the sum of the resulting chunks may be smaller than sz.
| rb | the ringbuffer | 
| chunks | an array of data chunks that will contain data / size of chunks | 
| sz | the requested size | 

| FREERDP_API size_t ringbuffer_used | ( | const RingBuffer * | ringbuffer | ) | 
computes the space used in this ringbuffer
| ringbuffer | A pointer to the ringbuffer | 

| FREERDP_API BOOL ringbuffer_write | ( | RingBuffer * | rb, | 
| const BYTE * | ptr, | ||
| size_t | sz | ||
| ) | 
writes some bytes in the ringbuffer, if the data doesn't fit, the ringbuffer is resized automatically
| rb | the ringbuffer | 
| ptr | a pointer on the data to add | 
| sz | the size of the data to add | 
Write to a ringbuffer
| rb | A pointer to the ringbuffer | 
| ptr | A pointer to the data to write | 
| sz | The number of bytes to write | 

