/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.5
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

#ifndef SWIG_Xapian_WRAP_H_
#define SWIG_Xapian_WRAP_H_

class SwigDirector_PostingSource : public Xapian::PostingSource, public Swig::Director {

public:
    SwigDirector_PostingSource();
    virtual ~SwigDirector_PostingSource();
    virtual Xapian::doccount get_termfreq_min() const;
    virtual Xapian::doccount get_termfreq_est() const;
    virtual Xapian::doccount get_termfreq_max() const;
    virtual Xapian::weight get_weight() const;
    virtual Xapian::docid get_docid() const;
    virtual void next(Xapian::weight min_wt);
    virtual void skip_to(Xapian::docid did, Xapian::weight min_wt);
    virtual bool check(Xapian::docid did, Xapian::weight min_wt);
    virtual bool at_end() const;
    virtual Xapian::PostingSource *clone() const;
    virtual std::string name() const;
    virtual std::string serialise() const;
    virtual Xapian::PostingSource *unserialise(std::string const &s) const;
    virtual void init(Xapian::Database const &db);
    virtual std::string get_description() const;

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef double (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback4_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback5_t)(double);
    typedef void (SWIGSTDCALL* SWIG_Callback6_t)(unsigned int, double);
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback7_t)(unsigned int, double);
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback8_t)();
    typedef char * (SWIGSTDCALL* SWIG_Callback9_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback10_t)(void *);
    typedef char * (SWIGSTDCALL* SWIG_Callback11_t)();
    void swig_connect_director(SWIG_Callback0_t callbackGetTermfreqMin, SWIG_Callback1_t callbackGetTermfreqEst, SWIG_Callback2_t callbackGetTermfreqMax, SWIG_Callback3_t callbackGetWeight, SWIG_Callback4_t callbackGetDocId, SWIG_Callback5_t callbackNext, SWIG_Callback6_t callbackSkipTo, SWIG_Callback7_t callbackCheck, SWIG_Callback8_t callbackAtEnd, SWIG_Callback9_t callbackName, SWIG_Callback10_t callbackInit, SWIG_Callback11_t callbackGetDescription);

private:
    SWIG_Callback0_t swig_callbackGetTermfreqMin;
    SWIG_Callback1_t swig_callbackGetTermfreqEst;
    SWIG_Callback2_t swig_callbackGetTermfreqMax;
    SWIG_Callback3_t swig_callbackGetWeight;
    SWIG_Callback4_t swig_callbackGetDocId;
    SWIG_Callback5_t swig_callbackNext;
    SWIG_Callback6_t swig_callbackSkipTo;
    SWIG_Callback7_t swig_callbackCheck;
    SWIG_Callback8_t swig_callbackAtEnd;
    SWIG_Callback9_t swig_callbackName;
    SWIG_Callback10_t swig_callbackInit;
    SWIG_Callback11_t swig_callbackGetDescription;
    void swig_init_callbacks();
};

class SwigDirector_MatchDecider : public Xapian::MatchDecider, public Swig::Director {

public:
    SwigDirector_MatchDecider();
    virtual bool operator ()(Xapian::Document const &doc) const;
    virtual ~SwigDirector_MatchDecider();

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)(void *);
    void swig_connect_director(SWIG_Callback0_t callbackApply);

private:
    SWIG_Callback0_t swig_callbackApply;
    void swig_init_callbacks();
};

class SwigDirector_ExpandDecider : public Xapian::ExpandDecider, public Swig::Director {

public:
    SwigDirector_ExpandDecider();
    virtual bool operator ()(std::string const &term) const;
    virtual ~SwigDirector_ExpandDecider();

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)(char *);
    void swig_connect_director(SWIG_Callback0_t callbackApply);

private:
    SWIG_Callback0_t swig_callbackApply;
    void swig_init_callbacks();
};

class SwigDirector_MatchSpy : public Xapian::MatchSpy, public Swig::Director {

public:
    SwigDirector_MatchSpy();
    virtual ~SwigDirector_MatchSpy();
    virtual void operator ()(Xapian::Document const &doc, Xapian::weight wt);
    virtual Xapian::MatchSpy *clone() const;
    virtual std::string name() const;
    virtual std::string serialise() const;
    virtual Xapian::MatchSpy *unserialise(std::string const &s, Xapian::Registry const &context) const;
    virtual std::string serialise_results() const;
    virtual void merge_results(std::string const &s);
    virtual std::string get_description() const;

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)(void *, double);
    typedef char * (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback2_t)(char *);
    typedef char * (SWIGSTDCALL* SWIG_Callback3_t)();
    void swig_connect_director(SWIG_Callback0_t callbackApply, SWIG_Callback1_t callbackName, SWIG_Callback2_t callbackMergeResults, SWIG_Callback3_t callbackGetDescription);

private:
    SWIG_Callback0_t swig_callbackApply;
    SWIG_Callback1_t swig_callbackName;
    SWIG_Callback2_t swig_callbackMergeResults;
    SWIG_Callback3_t swig_callbackGetDescription;
    void swig_init_callbacks();
};

class SwigDirector_Stopper : public Xapian::Stopper, public Swig::Director {

public:
    SwigDirector_Stopper();
    virtual bool operator ()(std::string const &term) const;
    virtual ~SwigDirector_Stopper();
    virtual std::string get_description() const;

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)(char *);
    typedef char * (SWIGSTDCALL* SWIG_Callback1_t)();
    void swig_connect_director(SWIG_Callback0_t callbackApply, SWIG_Callback1_t callbackGetDescription);

private:
    SWIG_Callback0_t swig_callbackApply;
    SWIG_Callback1_t swig_callbackGetDescription;
    void swig_init_callbacks();
};

struct SwigDirector_ValueRangeProcessor : public Xapian::ValueRangeProcessor, public Swig::Director {

public:
    SwigDirector_ValueRangeProcessor();
    virtual ~SwigDirector_ValueRangeProcessor();
    virtual Xapian::valueno operator ()(std::string &begin, std::string &end);

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)(void *, void *);
    void swig_connect_director(SWIG_Callback0_t callbackApply);

private:
    SWIG_Callback0_t swig_callbackApply;
    void swig_init_callbacks();
};

struct SwigDirector_StemImplementation : public Xapian::StemImplementation, public Swig::Director {

public:
    SwigDirector_StemImplementation();
    virtual ~SwigDirector_StemImplementation();
    virtual std::string operator ()(std::string const &word);
    virtual std::string get_description() const;

    typedef char * (SWIGSTDCALL* SWIG_Callback0_t)(char *);
    typedef char * (SWIGSTDCALL* SWIG_Callback1_t)();
    void swig_connect_director(SWIG_Callback0_t callbackApply, SWIG_Callback1_t callbackGetDescription);

private:
    SWIG_Callback0_t swig_callbackApply;
    SWIG_Callback1_t swig_callbackGetDescription;
    void swig_init_callbacks();
};

class SwigDirector_KeyMaker : public Xapian::KeyMaker, public Swig::Director {

public:
    SwigDirector_KeyMaker();
    virtual std::string operator ()(Xapian::Document const &doc) const;
    virtual ~SwigDirector_KeyMaker();

    typedef char * (SWIGSTDCALL* SWIG_Callback0_t)(void *);
    void swig_connect_director(SWIG_Callback0_t callbackApply);

private:
    SWIG_Callback0_t swig_callbackApply;
    void swig_init_callbacks();
};

class SwigDirector_Compactor : public Xapian::Compactor, public Swig::Director {

public:
    SwigDirector_Compactor();
    virtual ~SwigDirector_Compactor();
    virtual void set_status(std::string const &table, std::string const &status);
    virtual std::string resolve_duplicate_metadata(std::string const &key, size_t num_tags, std::string const tags[]);

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)(char *, char *);
    typedef char * (SWIGSTDCALL* SWIG_Callback1_t)(char *, unsigned long, void *);
    void swig_connect_director(SWIG_Callback0_t callbackSetStatus, SWIG_Callback1_t callbackResolveDuplicateMetadata);

private:
    SWIG_Callback0_t swig_callbackSetStatus;
    SWIG_Callback1_t swig_callbackResolveDuplicateMetadata;
    void swig_init_callbacks();
};


#endif
