#ifndef H_KINO_SKIPSTEPPER
#define H_KINO_SKIPSTEPPER 1
#include "KinoSearch/Util/Stepper.r"
typedef struct kino_SkipStepper kino_SkipStepper;
typedef struct KINO_SKIPSTEPPER_VTABLE KINO_SKIPSTEPPER_VTABLE;
struct kino_InStream;
struct kino_OutStream;
KINO_FINAL_CLASS("KinoSearch::Index::SkipStepper", "SkipStepper",
"KinoSearch::Util::Stepper");
struct kino_SkipStepper {
KINO_SKIPSTEPPER_VTABLE *_;
KINO_STEPPER_MEMBER_VARS;
chy_u32_t doc_num;
chy_u64_t filepos;
};
/* Constructor.
*/
kino_SkipStepper*
kino_SkipStepper_new();
struct kino_ByteBuf*
kino_SkipStepper_to_string(kino_SkipStepper *self);
KINO_METHOD("Kino_SkipStepper_To_String");
void
kino_SkipStepper_read_record(kino_SkipStepper *self,
struct kino_InStream *instream);
KINO_METHOD("Kino_SkipStepper_Read_Record");
void
kino_SkipStepper_write_record(kino_SkipStepper *self,
struct kino_OutStream *outstream,
chy_u32_t last_doc_num,
chy_u64_t last_filepos);
KINO_METHOD("Kino_SkipStepper_Write_Record");
/* Set a base document number and a base file position which Read_Record will
* add onto with its deltas.
*/
void
kino_SkipStepper_reset(kino_SkipStepper *self, chy_u32_t doc_num,
chy_u64_t filepos);
KINO_METHOD("Kino_SkipStepper_Reset");
KINO_END_CLASS
#endif /* H_KINO_SKIPSTEPPER */
/* Copyright 2007 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/