Select Git revision
labcomm_mem_writer.h
-
Anders Blomdell authoredAnders Blomdell authored
labcomm_mem_writer.h 1013 B
#ifndef LABCOMM_MEM_WRITER_H
#define LABCOMM_MEM_WRITER_H
#include "labcomm.h"
/* Wrapper structure for the memory buffer including a writer position. */
typedef struct labcomm_mem_writer_context_t labcomm_mem_writer_context_t;
struct labcomm_mem_writer_context_t {
size_t write_pos; // Position where next write should be.
size_t length; // Length of the buffer.
unsigned char *buf; // Allocated destination buffer.
};
int labcomm_mem_writer(labcomm_writer_t *w, labcomm_writer_action_t action, ...);
/* Wrapper the internal static function copy_data. This is needed so that the exceptions can be unit tested. */
void test_copy_data(labcomm_writer_t *w, labcomm_mem_writer_context_t *mcontext, unsigned char *mbuf);
/* Allocate new labcomm_mem_writer_context_t. */
labcomm_mem_writer_context_t *labcomm_mem_writer_context_t_new(size_t init_pos, size_t length, unsigned char *buf);
/* Deallocate mcontext. */
void labcomm_mem_writer_context_t_free(labcomm_mem_writer_context_t **mcontext);
#endif