/** @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_TERMINFO
#define R_KINO_TERMINFO 1

#include "KinoSearch/Index/TermInfo.h"

#define KINO_TERMINFO_BOILERPLATE

typedef kino_TermInfo*
(*kino_TInfo_clone_t)(kino_TermInfo *self);

typedef struct kino_ByteBuf*
(*kino_TInfo_to_string_t)(kino_TermInfo *self);

typedef void
(*kino_TInfo_reset_t)(kino_TermInfo *self);

typedef void
(*kino_TInfo_copy_t)(kino_TermInfo *self, const kino_TermInfo *other);

#define Kino_TInfo_Clone(self) \
    kino_TInfo_clone((kino_TermInfo*)self)

#define Kino_TInfo_Destroy(self) \
    kino_Obj_destroy((kino_Obj*)self)

#define Kino_TInfo_Equals(self, other) \
    kino_Obj_equals((kino_Obj*)self, other)

#define Kino_TInfo_Hash_Code(self) \
    kino_Obj_hash_code((kino_Obj*)self)

#define Kino_TInfo_Is_A(self, target_vtable) \
    kino_Obj_is_a((kino_Obj*)self, target_vtable)

#define Kino_TInfo_To_String(self) \
    kino_TInfo_to_string((kino_TermInfo*)self)

#define Kino_TInfo_Serialize(self, target) \
    kino_Obj_serialize((kino_Obj*)self, target)

#define Kino_TInfo_Reset(self) \
    kino_TInfo_reset((kino_TermInfo*)self)

#define Kino_TInfo_Copy(self, other) \
    kino_TInfo_copy((kino_TermInfo*)self, other)

struct KINO_TERMINFO_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_TInfo_reset_t reset;
    kino_TInfo_copy_t copy;
};

extern KINO_TERMINFO_VTABLE KINO_TERMINFO;

#ifdef KINO_USE_SHORT_NAMES
  #define TermInfo kino_TermInfo
  #define TERMINFO KINO_TERMINFO
  #define TInfo_new kino_TInfo_new
  #define TInfo_clone_t kino_TInfo_clone_t
  #define TInfo_clone kino_TInfo_clone
  #define TInfo_to_string_t kino_TInfo_to_string_t
  #define TInfo_to_string kino_TInfo_to_string
  #define TInfo_reset_t kino_TInfo_reset_t
  #define TInfo_reset kino_TInfo_reset
  #define TInfo_copy_t kino_TInfo_copy_t
  #define TInfo_copy kino_TInfo_copy
  #define TInfo_Clone Kino_TInfo_Clone
  #define TInfo_Destroy Kino_TInfo_Destroy
  #define TInfo_Equals Kino_TInfo_Equals
  #define TInfo_Hash_Code Kino_TInfo_Hash_Code
  #define TInfo_Is_A Kino_TInfo_Is_A
  #define TInfo_To_String Kino_TInfo_To_String
  #define TInfo_Serialize Kino_TInfo_Serialize
  #define TInfo_Reset Kino_TInfo_Reset
  #define TInfo_Copy Kino_TInfo_Copy
#endif /* KINO_USE_SHORT_NAMES */

#define KINO_TERMINFO_MEMBER_VARS \
    chy_u32_t  refcount; \
    chy_i32_t  doc_freq; \
    chy_u64_t  post_filepos; \
    chy_u64_t  skip_filepos; \
    chy_u64_t  index_filepos

#ifdef KINO_WANT_TERMINFO_VTABLE
KINO_TERMINFO_VTABLE KINO_TERMINFO = {
    (KINO_OBJ_VTABLE*)&KINO_VIRTUALTABLE,
    1,
    (KINO_OBJ_VTABLE*)&KINO_OBJ,
    "KinoSearch::Index::TermInfo",
    (kino_Obj_clone_t)kino_TInfo_clone,
    (kino_Obj_destroy_t)kino_Obj_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_TInfo_to_string,
    (kino_Obj_serialize_t)kino_Obj_serialize,
    (kino_TInfo_reset_t)kino_TInfo_reset,
    (kino_TInfo_copy_t)kino_TInfo_copy
};
#endif /* KINO_WANT_TERMINFO_VTABLE */

#undef KINO_TERMINFO_BOILERPLATE


#endif /* R_KINO_TERMINFO */


/* Copyright 2007 Marvin Humphrey
 *
 * This program is free software; you can redistribute it and/or modify
 * under the same terms as Perl itself.
 */