20#ifndef FREERDP_UTILS_RINGBUFFER_H
21#define FREERDP_UTILS_RINGBUFFER_H
23#include <winpr/wtypes.h>
24#include <freerdp/api.h>
55 FREERDP_API BOOL ringbuffer_init(
RingBuffer* rb,
size_t initialSize);
62 FREERDP_API
void ringbuffer_destroy(
RingBuffer* ringbuffer);
70 FREERDP_API
size_t ringbuffer_used(
const RingBuffer* ringbuffer);
77 FREERDP_API
size_t ringbuffer_capacity(
const RingBuffer* ringbuffer);
87 FREERDP_API BOOL ringbuffer_write(
RingBuffer* rb,
const BYTE* ptr,
size_t sz);
96 FREERDP_API BYTE* ringbuffer_ensure_linear_write(
RingBuffer* rb,
size_t sz);
107 FREERDP_API BOOL ringbuffer_commit_written_bytes(
RingBuffer* rb,
size_t sz);
125 FREERDP_API
void ringbuffer_commit_read_bytes(
RingBuffer* rb,
size_t sz);
a piece of data in the ring buffer, exactly like a glibc iovec