60typedef struct buffer_triple_t {
93 VOLK_Buffer *buf,
const size_t size,
const unsigned char *data);
154#define BUF_DUMMY VOLK_buffer_new (NULL, 0)
221 if (buf1->
size != buf2->
size)
return false;
336#define BTRP_DUMMY VOLK_btriple_new (BUF_DUMMY, BUF_DUMMY, BUF_DUMMY)
bool VOLK_buffer_eq(const VOLK_Buffer *buf1, const VOLK_Buffer *buf2)
Return whether two buffers are equal.
#define NULL_KEY
"NULL" key, a value that is never user-provided.
void VOLK_btriple_done(VOLK_BufferTriple *sspo)
Free the internal pointers of a buffer triple.
VOLK_Key VOLK_buffer_hash(const VOLK_Buffer *buf)
Hash a buffer.
void VOLK_buffer_done(VOLK_Buffer *buf)
Free the content of a buffer.
VOLK_BufferFlag
Buffer flags, stored in buffer structure.
VOLK_Buffer * VOLK_btriple_pos(const VOLK_BufferTriple *btrp, VOLK_TriplePos n)
Get serialized triple by term position.
char * VOLK_buffer_as_str(const VOLK_Buffer *buf)
Format a buffer into anb ASCII string.
VOLK_rc VOLK_buffer_init(VOLK_Buffer *buf, const size_t size, const unsigned char *data)
Initialize or reuse a buffer handle.
VOLK_Key VOLK_btriple_hash(const VOLK_BufferTriple *strp)
Hash a buffer triple.
VOLK_Buffer * VOLK_default_ctx_buf
Serialized default context.
void VOLK_btriple_free(VOLK_BufferTriple *sspo)
Free a buffer triple and all its internal pointers.
void VOLK_buffer_print(const VOLK_Buffer *buf)
Print a byte string of a given length in a human-readable format.
VOLK_TriplePos
Triple position of s, p, o.
VOLK_rc VOLK_btriple_init(VOLK_BufferTriple *sspo, VOLK_Buffer *s, VOLK_Buffer *p, VOLK_Buffer *o)
Initialize internal term pointers in a heap-allocated buffer triple.
void VOLK_buffer_free(VOLK_Buffer *buf)
Free a buffer.
int VOLK_buffer_cmp(const VOLK_Buffer *buf1, const VOLK_Buffer *buf2)
Compare two buffers.
VOLK_BufferTriple * VOLK_btriple_new(VOLK_Buffer *s, VOLK_Buffer *p, VOLK_Buffer *o)
Create a new buffer triple.
VOLK_Buffer * VOLK_buffer_new(const unsigned char *data, const size_t size)
Create a new buffer and optionally populate it with data.
VOLK_Buffer * VOLK_buffer_new_borrowed(unsigned char *data, const size_t size)
Create a borrowed buffer (memory view).
#define VOLK_HASH_SEED
Seed used for all hashing. Compile-time configurable.
#define VOLK_HASH(...)
Default hashing function. Depends on architecture.
#define MALLOC_GUARD(var, rc)
Allocate one pointer with malloc and return rc if it fails.
#define CALLOC_GUARD(var, rc)
Allocate one pointer with calloc and return rc if it fails.
size_t VOLK_Key
Term key, i.e., hash of a serialized term.
#define VOLK_OK
Generic success return code.
General-purpose data buffer.