/** @file */
/***********************************************
!!!! DO NOT EDIT THIS FILE !!!!
All content has been auto-generated by
the boilerplater.pl utility.
See boilerplater's documentation for details.
***********************************************/
#ifndef R_KINO_MEMORYPOOL
#define R_KINO_MEMORYPOOL 1
#include "KinoSearch/Util/MemoryPool.h"
#define KINO_MEMORYPOOL_BOILERPLATE
typedef void
(*kino_MemPool_destroy_t)(kino_MemoryPool *self);
typedef void*
(*kino_MemPool_grab_t)(kino_MemoryPool *self, size_t amount);
typedef void
(*kino_MemPool_resize_t)(kino_MemoryPool *self, void *ptr, size_t revised_amount);
typedef void
(*kino_MemPool_release_all_t)(kino_MemoryPool *self);
typedef void
(*kino_MemPool_eat_t)(kino_MemoryPool *self, kino_MemoryPool *other);
#define Kino_MemPool_Clone(self) \
kino_Obj_clone((kino_Obj*)self)
#define Kino_MemPool_Destroy(self) \
kino_MemPool_destroy((kino_MemoryPool*)self)
#define Kino_MemPool_Equals(self, other) \
kino_Obj_equals((kino_Obj*)self, other)
#define Kino_MemPool_Hash_Code(self) \
kino_Obj_hash_code((kino_Obj*)self)
#define Kino_MemPool_Is_A(self, target_vtable) \
kino_Obj_is_a((kino_Obj*)self, target_vtable)
#define Kino_MemPool_To_String(self) \
kino_Obj_to_string((kino_Obj*)self)
#define Kino_MemPool_Serialize(self, target) \
kino_Obj_serialize((kino_Obj*)self, target)
#define Kino_MemPool_Grab(self, amount) \
kino_MemPool_grab((kino_MemoryPool*)self, amount)
#define Kino_MemPool_Resize(self, ptr, revised_amount) \
kino_MemPool_resize((kino_MemoryPool*)self, ptr, revised_amount)
#define Kino_MemPool_Release_All(self) \
kino_MemPool_release_all((kino_MemoryPool*)self)
#define Kino_MemPool_Eat(self, other) \
kino_MemPool_eat((kino_MemoryPool*)self, other)
struct KINO_MEMORYPOOL_VTABLE {
KINO_OBJ_VTABLE *_;
chy_u32_t refcount;
KINO_OBJ_VTABLE *parent;
const char *class_name;
kino_Obj_clone_t clone;
kino_Obj_destroy_t destroy;
kino_Obj_equals_t equals;
kino_Obj_hash_code_t hash_code;
kino_Obj_is_a_t is_a;
kino_Obj_to_string_t to_string;
kino_Obj_serialize_t serialize;
kino_MemPool_grab_t grab;
kino_MemPool_resize_t resize;
kino_MemPool_release_all_t release_all;
kino_MemPool_eat_t eat;
};
extern KINO_MEMORYPOOL_VTABLE KINO_MEMORYPOOL;
#ifdef KINO_USE_SHORT_NAMES
#define MemoryPool kino_MemoryPool
#define MEMORYPOOL KINO_MEMORYPOOL
#define MemPool_new kino_MemPool_new
#define MemPool_run_tests kino_MemPool_run_tests
#define MemPool_destroy_t kino_MemPool_destroy_t
#define MemPool_destroy kino_MemPool_destroy
#define MemPool_grab_t kino_MemPool_grab_t
#define MemPool_grab kino_MemPool_grab
#define MemPool_resize_t kino_MemPool_resize_t
#define MemPool_resize kino_MemPool_resize
#define MemPool_release_all_t kino_MemPool_release_all_t
#define MemPool_release_all kino_MemPool_release_all
#define MemPool_eat_t kino_MemPool_eat_t
#define MemPool_eat kino_MemPool_eat
#define MemPool_Clone Kino_MemPool_Clone
#define MemPool_Destroy Kino_MemPool_Destroy
#define MemPool_Equals Kino_MemPool_Equals
#define MemPool_Hash_Code Kino_MemPool_Hash_Code
#define MemPool_Is_A Kino_MemPool_Is_A
#define MemPool_To_String Kino_MemPool_To_String
#define MemPool_Serialize Kino_MemPool_Serialize
#define MemPool_Grab Kino_MemPool_Grab
#define MemPool_Resize Kino_MemPool_Resize
#define MemPool_Release_All Kino_MemPool_Release_All
#define MemPool_Eat Kino_MemPool_Eat
#endif /* KINO_USE_SHORT_NAMES */
#define KINO_MEMORYPOOL_MEMBER_VARS \
chy_u32_t refcount; \
chy_u32_t arena_size; \
struct kino_VArray * arenas; \
chy_i32_t tick; \
char * buf; \
char * last_buf; \
char * limit; \
size_t consumed
#ifdef KINO_WANT_MEMORYPOOL_VTABLE
KINO_MEMORYPOOL_VTABLE KINO_MEMORYPOOL = {
(KINO_OBJ_VTABLE*)&KINO_VIRTUALTABLE,
1,
(KINO_OBJ_VTABLE*)&KINO_OBJ,
"KinoSearch::Util::MemoryPool",
(kino_Obj_clone_t)kino_Obj_clone,
(kino_Obj_destroy_t)kino_MemPool_destroy,
(kino_Obj_equals_t)kino_Obj_equals,
(kino_Obj_hash_code_t)kino_Obj_hash_code,
(kino_Obj_is_a_t)kino_Obj_is_a,
(kino_Obj_to_string_t)kino_Obj_to_string,
(kino_Obj_serialize_t)kino_Obj_serialize,
(kino_MemPool_grab_t)kino_MemPool_grab,
(kino_MemPool_resize_t)kino_MemPool_resize,
(kino_MemPool_release_all_t)kino_MemPool_release_all,
(kino_MemPool_eat_t)kino_MemPool_eat
};
#endif /* KINO_WANT_MEMORYPOOL_VTABLE */
#undef KINO_MEMORYPOOL_BOILERPLATE
#endif /* R_KINO_MEMORYPOOL */
/* Copyright 2007 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/