private.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "faux/faux.h"
  2. #include "faux/file.h"
  3. // Chunk class
  4. struct faux_chunk_s {
  5. void *buf; // Allocated buffer
  6. size_t size; // Size of allocated buffer
  7. void *start; // Pointer to data start
  8. void *end; // Pointer to data end
  9. };
  10. typedef struct faux_chunk_s faux_chunk_t;
  11. C_DECL_BEGIN
  12. faux_chunk_t *faux_chunk_new(size_t size);
  13. void faux_chunk_free(faux_chunk_t *chunk);
  14. size_t faux_chunk_len(faux_chunk_t *chunk);
  15. ssize_t faux_chunk_inc_len(faux_chunk_t *chunk, size_t inc_len);
  16. ssize_t faux_chunk_dec_len(faux_chunk_t *chunk, size_t dec_len);
  17. ssize_t faux_chunk_size(faux_chunk_t *chunk);
  18. void *faux_chunk_buf(faux_chunk_t *chunk);
  19. void *faux_chunk_write_pos(faux_chunk_t *chunk);
  20. void *faux_chunk_read_pos(faux_chunk_t *chunk);
  21. ssize_t faux_chunk_left(faux_chunk_t *chunk);
  22. C_DECL_END
  23. // File class
  24. /** @brief Chunk size to allocate buffer */
  25. #define FAUX_FILE_CHUNK_SIZE 128
  26. struct faux_file_s {
  27. int fd; // File descriptor
  28. char *buf; // Data buffer
  29. size_t buf_size; // Current buffer size
  30. size_t len; // Current data length
  31. bool_t eof; // EOF flag
  32. };