SDK Multiplataforma en C logo

SDK Multiplataforma en C

Buffers

❮ Anterior
Siguiente ❯

Bloques de memoria genéricos, reservados dinámicamente.


Funciones

Buffer*buffer_create (...)
Buffer*buffer_with_data (...)
Bufferbuffer_read (...)
voidbuffer_destroy (...)
uint32_tbuffer_size (...)
byte_t*buffer_data (...)
const byte_t*buffer_const (...)
voidbuffer_write (...)

Los objetos Buffer son, sencillamente, bloques de memoria reservados dinámicamente y almacenados en el Segmento Heap (Figura 1). Son útiles para compartir datos genéricos entre diferentes funciones o hilos. Para este último caso, deben estar protegidos por un Mutex si varias hebras concurrentes pudiesen acceder a él (no son thread-safe). Son de tamaño fijo. Una vez creados no se pueden re-dimensionar, aunque pueden ser re-escritos cuantas veces sea necesario.

Representación de un bloque de memoria.
Figura 1: Bloque de memoria dinámica.
❮ Anterior
Siguiente ❯

buffer_create ()

Crea un nuevo búfer.

Buffer*
buffer_create(const uint32_t size);
size

Tamaño del búfer en bytes.

Retorna

El nuevo búfer.


buffer_with_data ()

Crea un nuevo búfer y lo inicializa.

Buffer*
buffer_with_data(const byte_t *data,
                 const uint32_t size);
data

Datos para inicializar el búfer.

size

Tamaño del búfer en bytes.

Retorna

El nuevo búfer.


buffer_read ()

Lee un búfer desde un stream.

Buffer
buffer_read(Stream *stream);
stream

Un stream de lectura.

Retorna

El búfer.


buffer_destroy ()

Destruye el búfer.

void
buffer_destroy(Buffer **buffer);
buffer

El búfer. Será puesto a NULL tras la destrucción.


buffer_size ()

Obtiene el tamaño del búfer.

uint32_t
buffer_size(const Buffer *buffer);
buffer

Búfer.

Retorna

El tamaño del búfer en bytes.


buffer_data ()

Obtiene un puntero al contenido del búfer.

byte_t*
buffer_data(Buffer *buffer);
buffer

Búfer.

Retorna

Puntero al contenido del búfer que puede ser utilizado para leer o escribir.


buffer_const ()

Obtiene un puntero const al contenido del búfer.

const byte_t*
buffer_const(const Buffer *buffer);
buffer

Búfer.

Retorna

Puntero al contenido del búfer que puede ser utilizado solo para leer.


buffer_write ()

Escribe un búfer en un stream.

void
buffer_write(Stream *stream,
             const Buffer *buffer);
stream

Un stream de escritura.

buffer

El búfer.

❮ Anterior
Siguiente ❯