#ifndef H_KINO_ANDNOTSCORER
#define H_KINO_ANDNOTSCORER 1
#include "KinoSearch/Search/Scorer.r"
struct kino_Similarity;
struct kino_Tally;
struct kino_VArray;
typedef struct kino_ANDNOTScorer kino_ANDNOTScorer;
typedef struct KINO_ANDNOTSCORER_VTABLE KINO_ANDNOTSCORER_VTABLE;
KINO_CLASS("KinoSearch::Search::ANDNOTScorer", "ANDNOTScorer",
"KinoSearch::Search::Scorer");
struct kino_ANDNOTScorer {
KINO_ANDNOTSCORER_VTABLE *_;
KINO_SCORER_MEMBER_VARS;
kino_Scorer *and_scorer; /**< required scorer */
kino_Scorer *not_scorer; /**< negated (prohibited) scorer */
chy_bool_t first_time;
};
/* Constructor.
*/
kino_ANDNOTScorer*
kino_ANDNOTScorer_new(struct kino_Similarity *sim,
struct kino_Scorer *and_scorer,
struct kino_Scorer *not_scorer);
void
kino_ANDNOTScorer_destroy(kino_ANDNOTScorer *self);
KINO_METHOD("Kino_ANDNOTScorer_Destroy");
chy_bool_t
kino_ANDNOTScorer_next(kino_ANDNOTScorer *self);
KINO_METHOD("Kino_ANDNOTScorer_Next");
chy_bool_t
kino_ANDNOTScorer_skip_to(kino_ANDNOTScorer *self, chy_u32_t target);
KINO_METHOD("Kino_ANDNOTScorer_Skip_To");
struct kino_Tally*
kino_ANDNOTScorer_tally(kino_ANDNOTScorer *self);
KINO_METHOD("Kino_ANDNOTScorer_Tally");
chy_u32_t
kino_ANDNOTScorer_doc(kino_ANDNOTScorer *self);
KINO_METHOD("Kino_ANDNOTScorer_Doc");
chy_u32_t
kino_ANDNOTScorer_max_matchers(kino_ANDNOTScorer *self);
KINO_METHOD("Kino_ANDNOTScorer_Max_Matchers");
KINO_END_CLASS
#endif /* H_KINO_ANDNOTSCORER */
/* Copyright 2006-2007 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/