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 (...)
voidbuffer_destroy (...)
uint32_tbuffer_size (...)
byte_t*buffer_data (...)
const byte_t*buffer_const (...)

Los objetos Buffer son, sencillamente, bloques de memoria reservados dinámicamente y almacenados en el Segmento Heap. Son útiles para compartir datos genéricos entre diferentes funciones o hebras. Para este último caso, deben estar protegidos por un Mutex si varios hilos pueden acceder a él de forma concurrente (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.

  • Utiliza buffer_create para crear un bloque de memoria dinámica.
  • Utiliza buffer_destroy para liberar un bloque de memoria dinámica.
  • Utiliza buffer_data para obtener un puntero al bloque de memoria.

buffer_create ()

Crea un nuevo buffer.

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 buffer y lo inicializa.

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

Datos para inicializar el buffer.

size

Tamaño del búfer en bytes.

Retorna

El nuevo 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.

❮ Anterior
Siguiente ❯