21 #ifndef XAPIAN_INCLUDED_GLASS_SPELLING_H 22 #define XAPIAN_INCLUDED_GLASS_SPELLING_H 45 explicit fragment(
char data_[4]) { std::memcpy(data, data_, 4); }
48 const char &
operator[] (
unsigned i)
const {
return data[i]; }
50 operator std::string()
const {
51 return std::string(data, data[0] ==
'M' ? 4 : 3);
55 return std::memcmp(data, b.
data, 4) < 0;
64 void toggle_word(
const std::string & word);
101 void merge_changes();
106 TermList * open_termlist(
const std::string & word);
111 wordfreq_upper_bound = ub;
129 return wordfreq_upper_bound;
134 wordfreq_changes.clear();
135 termlist_deltas.clear();
163 : data(data_), p(0) { }
167 std::string get_termname()
const;
175 TermList * skip_to(
const std::string & term);
184 #endif // XAPIAN_INCLUDED_GLASS_SPELLING_H bool operator<(const fragment &b) const
XAPIAN_REVISION_TYPE rev
Revision number of a database.
uint4 glass_revision_number_t
The revision number of a glass database.
Subclass of GlassTable for deriving lazy tables from.
Abstract base class for termlists.
std::string data
The encoded data.
unsigned p
Position in the data.
char & operator[](unsigned i)
std::map< std::string, Xapian::termcount > wordfreq_changes
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
void flush_db()
Flush any outstanding changes to the DB file of the table.
bool is_modified() const
Determine whether the object contains uncommitted modifications.
std::map< Glass::fragment, std::set< std::string > > termlist_deltas
Changes to make to the termlists.
Xapian::termcount flush_db()
Returns updated wordfreq upper bound.
Class for iterating over term positions.
void set_wordfreq_upper_bound(Xapian::termcount ub)
GlassSpellingTermList(const std::string &data_)
Constructor.
bool is_modified() const
Override methods of GlassTable.
std::string current_term
The current term.
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
Abstract base class for termlists.
GlassSpellingTable(int fd, off_t offset_, bool readonly)
void cancel(const RootInfo &root_info, glass_revision_number_t rev)
Cancel any outstanding changes.
void cancel(const RootInfo &root_info, glass_revision_number_t rev)
Override methods of GlassTable.
The list of words containing a particular trigram.
GlassSpellingTable(const std::string &dbdir, bool readonly)
Create a new GlassSpellingTable object.