22 #ifndef XAPIAN_INCLUDED_KEYMAKER_H 23 #define XAPIAN_INCLUDED_KEYMAKER_H 25 #if !defined XAPIAN_IN_XAPIAN_H && !defined XAPIAN_LIB_BUILD 26 # error Never use <xapian/keymaker.h> directly; include <xapian.h> instead. 72 opt_intrusive_base::release();
84 opt_intrusive_base::release();
110 const std::string & defvalue_)
111 : slot(slot_), reverse(reverse_), defvalue(defvalue_)
124 template<
class Iterator>
126 while (begin != end) add_value(*begin++);
144 const std::string & defvalue = std::string()) {
145 slots.push_back(
KeySpec(slot, reverse, defvalue));
151 #endif // XAPIAN_INCLUDED_KEYMAKER_H The Xapian namespace contains public interfaces for the Xapian library.
MultiValueKeyMaker(Iterator begin, Iterator end)
Construct a MultiValueKeyMaker from a pair of iterators.
void add_value(Xapian::valueno slot, bool reverse=false, const std::string &defvalue=std::string())
Add a value slot to the list to build a key from.
const KeyMaker * release() const
Start reference counting this object.
#define XAPIAN_VISIBILITY_DEFAULT
KeyMaker subclass which combines several values.
KeySpec(Xapian::valueno slot_, bool reverse_, const std::string &defvalue_)
Define XAPIAN_VISIBILITY_* macros.
Base class for objects managed by opt_intrusive_ptr.
KeyMaker()
Default constructor.
unsigned valueno
The number for a value slot in a document.
KeyMaker * release()
Start reference counting this object.
std::vector< KeySpec > slots
A handle representing a document in a Xapian database.
Virtual base class for key making functors.