ChertSpellingTable Class Reference

#include <chert_spelling.h>

Inheritance diagram for ChertSpellingTable:

Inheritance graph
[legend]
Collaboration diagram for ChertSpellingTable:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChertSpellingTable (const std::string &dbdir, bool readonly)
 Create a new ChertSpellingTable object.
void merge_changes ()
void add_word (const std::string &word, Xapian::termcount freqinc)
void remove_word (const std::string &word, Xapian::termcount freqdec)
TermListopen_termlist (const std::string &word)
Xapian::doccount get_word_frequency (const std::string &word) const
bool is_modified () const
 Override methods of ChertTable.
void flush_db ()
 Override methods of ChertTable.
void cancel ()
 Override methods of ChertTable.

Private Member Functions

void toggle_word (const std::string &word)
void toggle_fragment (fragment frag, const std::string &word)

Private Attributes

std::map< std::string,
Xapian::termcount
wordfreq_changes
std::map< fragment, std::set
< std::string > > 
termlist_deltas
 Changes to make to the termlists.


Detailed Description

Definition at line 55 of file chert_spelling.h.


Constructor & Destructor Documentation

ChertSpellingTable::ChertSpellingTable ( const std::string &  dbdir,
bool  readonly 
) [inline]

Create a new ChertSpellingTable object.

This method does not create or open the table on disk - you must call the create() or open() methods respectively!

Parameters:
dbdir The directory the chert database is stored in.
readonly true if we're opening read-only, else false.

Definition at line 80 of file chert_spelling.h.


Member Function Documentation

void ChertSpellingTable::add_word ( const std::string &  word,
Xapian::termcount  freqinc 
)

void ChertSpellingTable::cancel (  )  [inline]

Override methods of ChertTable.

NB: these aren't virtual, but we always call them on the subclass in cases where it matters.

Reimplemented from ChertTable.

Definition at line 110 of file chert_spelling.h.

References termlist_deltas, and wordfreq_changes.

Referenced by ChertDatabase::cancel().

void ChertSpellingTable::flush_db (  )  [inline]

Override methods of ChertTable.

NB: these aren't virtual, but we always call them on the subclass in cases where it matters.

Reimplemented from ChertTable.

Definition at line 105 of file chert_spelling.h.

References merge_changes().

Referenced by ChertDatabase::set_revision_number().

Xapian::doccount ChertSpellingTable::get_word_frequency ( const std::string &  word  )  const

bool ChertSpellingTable::is_modified (  )  const [inline]

Override methods of ChertTable.

NB: these aren't virtual, but we always call them on the subclass in cases where it matters.

Reimplemented from ChertTable.

Definition at line 101 of file chert_spelling.h.

References wordfreq_changes.

Referenced by ChertDatabase::apply().

void ChertSpellingTable::merge_changes (  ) 

TermList * ChertSpellingTable::open_termlist ( const std::string &  word  ) 

void ChertSpellingTable::remove_word ( const std::string &  word,
Xapian::termcount  freqdec 
)

void ChertSpellingTable::toggle_fragment ( fragment  frag,
const std::string &  word 
) [private]

Definition at line 110 of file chert_spelling.cc.

References termlist_deltas.

Referenced by toggle_word().

void ChertSpellingTable::toggle_word ( const std::string &  word  )  [private]

Definition at line 205 of file chert_spelling.cc.

References fragment::data, and toggle_fragment().

Referenced by add_word(), and remove_word().


Member Data Documentation

std::map<fragment, std::set<std::string> > ChertSpellingTable::termlist_deltas [private]

Changes to make to the termlists.

This list is essentially xor-ed with the list on disk, so an entry here either means a new entry needs to be added on disk, or an existing entry on disk needs to be removed. We do it this way so we don't need to store an additional add/remove flag for every word.

Definition at line 69 of file chert_spelling.h.

Referenced by cancel(), merge_changes(), and toggle_fragment().

std::map<std::string, Xapian::termcount> ChertSpellingTable::wordfreq_changes [private]


The documentation for this class was generated from the following files:

Documentation for Xapian (version 1.2.9).
Generated on 10 May 2012 by Doxygen 1.5.9.