/** @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_SCHEMA
#define R_KINO_SCHEMA 1
#include "KinoSearch/Schema.h"
#define KINO_SCHEMA_BOILERPLATE
typedef void
(*kino_Schema_destroy_t)(kino_Schema *self);
typedef void
(*kino_Schema_add_field_t)(kino_Schema *self,
const struct kino_ByteBuf *field_name,
struct kino_FieldSpec *field_spec);
typedef struct kino_FieldSpec*
(*kino_Schema_fetch_fspec_t)(kino_Schema *self,
const struct kino_ByteBuf *field_name);
typedef struct kino_Similarity*
(*kino_Schema_fetch_sim_t)(kino_Schema *self,
const struct kino_ByteBuf *field_name);
typedef struct kino_Posting*
(*kino_Schema_fetch_posting_t)(kino_Schema *self,
const struct kino_ByteBuf *field_name);
typedef chy_u32_t
(*kino_Schema_num_fields_t)(kino_Schema *self);
typedef chy_i32_t
(*kino_Schema_field_num_t)(kino_Schema *self,
const struct kino_ByteBuf *field_name);
typedef struct kino_VArray*
(*kino_Schema_all_fields_t)(kino_Schema *self);
#define Kino_Schema_Clone(self) \
(self)->_->clone((kino_Obj*)self)
#define Kino_Schema_Destroy(self) \
(self)->_->destroy((kino_Obj*)self)
#define Kino_Schema_Equals(self, other) \
(self)->_->equals((kino_Obj*)self, other)
#define Kino_Schema_Hash_Code(self) \
(self)->_->hash_code((kino_Obj*)self)
#define Kino_Schema_Is_A(self, target_vtable) \
(self)->_->is_a((kino_Obj*)self, target_vtable)
#define Kino_Schema_To_String(self) \
(self)->_->to_string((kino_Obj*)self)
#define Kino_Schema_Serialize(self, target) \
(self)->_->serialize((kino_Obj*)self, target)
#define Kino_Schema_Add_Field(self, field_name, field_spec) \
(self)->_->add_field((kino_Schema*)self, field_name, field_spec)
#define Kino_Schema_Fetch_FSpec(self, field_name) \
(self)->_->fetch_fspec((kino_Schema*)self, field_name)
#define Kino_Schema_Fetch_Sim(self, field_name) \
(self)->_->fetch_sim((kino_Schema*)self, field_name)
#define Kino_Schema_Fetch_Posting(self, field_name) \
(self)->_->fetch_posting((kino_Schema*)self, field_name)
#define Kino_Schema_Num_Fields(self) \
(self)->_->num_fields((kino_Schema*)self)
#define Kino_Schema_Field_Num(self, field_name) \
(self)->_->field_num((kino_Schema*)self, field_name)
#define Kino_Schema_All_Fields(self) \
(self)->_->all_fields((kino_Schema*)self)
struct KINO_SCHEMA_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_Schema_add_field_t add_field;
kino_Schema_fetch_fspec_t fetch_fspec;
kino_Schema_fetch_sim_t fetch_sim;
kino_Schema_fetch_posting_t fetch_posting;
kino_Schema_num_fields_t num_fields;
kino_Schema_field_num_t field_num;
kino_Schema_all_fields_t all_fields;
};
extern KINO_SCHEMA_VTABLE KINO_SCHEMA;
#ifdef KINO_USE_SHORT_NAMES
#define Schema kino_Schema
#define SCHEMA KINO_SCHEMA
#define Schema_new kino_Schema_new
#define Schema_destroy kino_Schema_destroy
#define Schema_add_field_t kino_Schema_add_field_t
#define Schema_add_field kino_Schema_add_field
#define Schema_fetch_fspec_t kino_Schema_fetch_fspec_t
#define Schema_fetch_fspec kino_Schema_fetch_fspec
#define Schema_fetch_sim_t kino_Schema_fetch_sim_t
#define Schema_fetch_sim kino_Schema_fetch_sim
#define Schema_fetch_posting_t kino_Schema_fetch_posting_t
#define Schema_fetch_posting kino_Schema_fetch_posting
#define Schema_num_fields_t kino_Schema_num_fields_t
#define Schema_num_fields kino_Schema_num_fields
#define Schema_field_num_t kino_Schema_field_num_t
#define Schema_field_num kino_Schema_field_num
#define Schema_all_fields_t kino_Schema_all_fields_t
#define Schema_all_fields kino_Schema_all_fields
#define Schema_Clone Kino_Schema_Clone
#define Schema_Destroy Kino_Schema_Destroy
#define Schema_Equals Kino_Schema_Equals
#define Schema_Hash_Code Kino_Schema_Hash_Code
#define Schema_Is_A Kino_Schema_Is_A
#define Schema_To_String Kino_Schema_To_String
#define Schema_Serialize Kino_Schema_Serialize
#define Schema_Add_Field Kino_Schema_Add_Field
#define Schema_Fetch_FSpec Kino_Schema_Fetch_FSpec
#define Schema_Fetch_Sim Kino_Schema_Fetch_Sim
#define Schema_Fetch_Posting Kino_Schema_Fetch_Posting
#define Schema_Num_Fields Kino_Schema_Num_Fields
#define Schema_Field_Num Kino_Schema_Field_Num
#define Schema_All_Fields Kino_Schema_All_Fields
#endif /* KINO_USE_SHORT_NAMES */
#define KINO_SCHEMA_MEMBER_VARS \
chy_u32_t refcount; \
struct kino_Similarity * sim; \
struct kino_Hash * fspecs; \
struct kino_Hash * by_name; \
struct kino_VArray * by_num; \
struct kino_Hash * sims; \
struct kino_Hash * postings; \
struct kino_Native * analyzers; \
struct kino_Native * analyzer; \
chy_i32_t index_interval; \
chy_i32_t skip_interval
#ifdef KINO_WANT_SCHEMA_VTABLE
KINO_SCHEMA_VTABLE KINO_SCHEMA = {
(KINO_OBJ_VTABLE*)&KINO_VIRTUALTABLE,
1,
(KINO_OBJ_VTABLE*)&KINO_OBJ,
"KinoSearch::Schema",
(kino_Obj_clone_t)kino_Obj_clone,
(kino_Obj_destroy_t)kino_Schema_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_Schema_add_field_t)kino_Schema_add_field,
(kino_Schema_fetch_fspec_t)kino_Schema_fetch_fspec,
(kino_Schema_fetch_sim_t)kino_Schema_fetch_sim,
(kino_Schema_fetch_posting_t)kino_Schema_fetch_posting,
(kino_Schema_num_fields_t)kino_Schema_num_fields,
(kino_Schema_field_num_t)kino_Schema_field_num,
(kino_Schema_all_fields_t)kino_Schema_all_fields
};
#endif /* KINO_WANT_SCHEMA_VTABLE */
#undef KINO_SCHEMA_BOILERPLATE
#endif /* R_KINO_SCHEMA */
/* Copyright 2007 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/