diff options
Diffstat (limited to 'src/piece-table.h')
-rw-r--r-- | src/piece-table.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/piece-table.h b/src/piece-table.h new file mode 100644 index 0000000..94ab072 --- /dev/null +++ b/src/piece-table.h @@ -0,0 +1,32 @@ +#ifndef PIECE_TABLE_H +#define PIECE_TABLE_H + +#include <malloc.h> +#include <stddef.h> +#include "buffer.h" + +struct piece { + char *start; + size_t length; + struct piece *next; + struct piece *prev; +}; + +typedef struct piece piece; + +typedef struct { + fixed_buffer orig; + growable_buffer add; + piece *sentinel; + size_t length; + + piece *cached; + size_t cached_offset; +} piece_table; + +bool init_piece_table(piece_table *pt, char *orig); +void free_piece_table(piece_table *pt); + +void free_piece_list(piece *pt); + +#endif // PIECE_TABLE_H |