Buffers
Bloques de memoria genéricos, reservados dinámicamente.
Funciones
Buffer* | buffer_create (...) |
Buffer* | buffer_with_data (...) |
void | buffer_destroy (...) |
uint32_t | buffer_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 |
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.