20#ifndef FREERDP_UTILS_RINGBUFFER_H
21#define FREERDP_UTILS_RINGBUFFER_H
23#include <winpr/wtypes.h>
24#include <freerdp/api.h>
56 FREERDP_API BOOL ringbuffer_init(
RingBuffer* rb,
size_t initialSize);
63 FREERDP_API
void ringbuffer_destroy(
RingBuffer* ringbuffer);
72 FREERDP_API
size_t ringbuffer_used(
const RingBuffer* ringbuffer);
80 FREERDP_API
size_t ringbuffer_capacity(
const RingBuffer* ringbuffer);
91 FREERDP_API BOOL ringbuffer_write(
RingBuffer* rb,
const BYTE* ptr,
size_t sz);
101 FREERDP_API BYTE* ringbuffer_ensure_linear_write(
RingBuffer* rb,
size_t sz);
113 FREERDP_API BOOL ringbuffer_commit_written_bytes(
RingBuffer* rb,
size_t sz);
132 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