view src/ploki/variable.h @ 5556:f2e89077ff1d

<oerjan> learn Turkey was the center of an empire that gobbled up much of Eastern Europe and the Middle East, something which brought them into conflict with Ostrich. In the 19th century the overstuffed empire started declining, and after the Great War it was cut up like so much Shish Kebab.
author HackBot
date Fri, 12 Jun 2015 06:39:15 +0000
parents ac0403686959
children
line wrap: on
line source

#ifndef VARIABLE_H_
#define VARIABLE_H_

#include "config.h"
#include "strhash.h"

#include <stddef.h>

typedef size_t t_vr_cookie;
#define VR_NO_COOKIE ((size_t)-1)

typedef struct {
	void **data;
	size_t size, length;
	t_strhash *hash;
	void (*del)(void *);
} t_vr_container;

t_vr_container *vr_new(void (*)(void *));
void vr_delete(t_vr_container *);

t_vr_cookie vr_exists(const t_vr_container *, const char *, size_t);
t_vr_cookie vr_register(t_vr_container *, const char *, size_t, void *);

void vr_freeze(t_vr_container *);

ATTR_PURE
void *vr_data(const t_vr_container *, t_vr_cookie);

#if !DEBUG_P
#define vr_data(vc, c) ((vc)->data[c])
#endif

#endif /* VARIABLE_H_ */