Files
ec3/src/chunk-table.h

49 lines
1.0 KiB
C
Raw Normal View History

#ifndef CHUNK_TABLE_H_
#define CHUNK_TABLE_H_
2025-02-27 15:49:42 +00:00
#include "b-tree.h"
#include "bin.h"
#include <blue/core/btree.h>
#include <blue/core/hash.h>
#include <stdio.h>
struct ec3_tag_ioctx;
struct chunk_table {
2025-02-27 15:49:42 +00:00
struct b_tree tab_chunks;
enum ec3_cluster_size tab_cluster_size;
b_btree tab_cache;
2025-02-27 15:49:42 +00:00
unsigned char *tab_cluster_buf;
size_t tab_next_cdat_cluster;
struct ec3_tag_ioctx *tab_ctab;
struct ec3_tag_ioctx *tab_cdat;
};
extern enum ec3_status chunk_table_init(
struct ec3_tag_ioctx *ctab,
struct ec3_tag_ioctx *cdat,
enum ec3_cluster_size cluster_size,
struct chunk_table *tab);
2025-02-27 15:49:42 +00:00
extern void chunk_table_init_empty_table(struct chunk_table *table);
extern void chunk_table_finish(struct chunk_table *tab);
extern enum ec3_status chunk_table_get(
struct chunk_table *tab,
ec3_chunk_id id,
void *out_data,
size_t *out_len);
extern enum ec3_status chunk_table_put(
struct chunk_table *tab,
const void *data,
size_t len,
ec3_chunk_id out_id);
extern size_t chunk_table_bytes_per_chunk(struct chunk_table *tab);
#endif