#include <brass_values.h>

Public Member Functions | |
| BrassValueManager (BrassPostListTable *postlist_table_, BrassTermListTable *termlist_table_) | |
| Create a new BrassValueManager object. | |
| void | merge_changes () |
| void | add_document (Xapian::docid did, const Xapian::Document &doc, std::map< Xapian::valueno, ValueStats > &value_stats) |
| void | delete_document (Xapian::docid did, std::map< Xapian::valueno, ValueStats > &value_stats) |
| void | replace_document (Xapian::docid did, const Xapian::Document &doc, std::map< Xapian::valueno, ValueStats > &value_stats) |
| std::string | get_value (Xapian::docid did, Xapian::valueno slot) const |
| void | get_all_values (std::map< Xapian::valueno, std::string > &values, Xapian::docid did) const |
| Xapian::doccount | get_value_freq (Xapian::valueno slot) const |
| std::string | get_value_lower_bound (Xapian::valueno slot) const |
| std::string | get_value_upper_bound (Xapian::valueno slot) const |
| void | set_value_stats (std::map< Xapian::valueno, ValueStats > &value_stats) |
| Write the updated statistics to the table. | |
| void | reset () |
| bool | is_modified () const |
| void | cancel () |
Private Member Functions | |
| void | add_value (Xapian::docid did, Xapian::valueno slot, const std::string &val) |
| void | remove_value (Xapian::docid did, Xapian::valueno slot) |
| Xapian::docid | get_chunk_containing_did (Xapian::valueno slot, Xapian::docid did, std::string &chunk) const |
| void | get_value_stats (Xapian::valueno slot) const |
| Get the statistics for value slot slot. | |
| void | get_value_stats (Xapian::valueno slot, ValueStats &stats) const |
Private Attributes | |
| Xapian::valueno | mru_slot |
| The value number for the most recently used value statistics. | |
| ValueStats | mru_valstats |
| The most recently used value statistics. | |
| BrassPostListTable * | postlist_table |
| BrassTermListTable * | termlist_table |
| std::map< Xapian::docid, std::string > | slots |
| std::map< Xapian::valueno, std::map< Xapian::docid, std::string > > | changes |
Definition at line 74 of file brass_values.h.
| BrassValueManager::BrassValueManager | ( | BrassPostListTable * | postlist_table_, | |
| BrassTermListTable * | termlist_table_ | |||
| ) | [inline] |
| void BrassValueManager::add_document | ( | Xapian::docid | did, | |
| const Xapian::Document & | doc, | |||
| std::map< Xapian::valueno, ValueStats > & | value_stats | |||
| ) |
Definition at line 359 of file brass_values.cc.
References add_value(), ValueStats::freq, get_value_stats(), Xapian::ValueIterator::get_valueno(), BrassTable::is_open(), ValueStats::lower_bound, pack_uint(), slots, termlist_table, ValueStats::upper_bound, Xapian::Document::values_begin(), and Xapian::Document::values_end().
Referenced by BrassWritableDatabase::add_document_(), and replace_document().
| void BrassValueManager::add_value | ( | Xapian::docid | did, | |
| Xapian::valueno | slot, | |||
| const std::string & | val | |||
| ) | [private] |
| void BrassValueManager::cancel | ( | ) | [inline] |
Definition at line 165 of file brass_values.h.
References changes, and slots.
Referenced by BrassDatabase::cancel().
| void BrassValueManager::delete_document | ( | Xapian::docid | did, | |
| std::map< Xapian::valueno, ValueStats > & | value_stats | |||
| ) |
Definition at line 410 of file brass_values.cc.
References Assert, AssertRelParanoid, ValueStats::freq, BrassTable::get_exact_entry(), get_value_stats(), BrassTable::is_open(), ValueStats::lower_bound, make_slot_key(), remove_value(), slots, termlist_table, unpack_uint(), and ValueStats::upper_bound.
Referenced by BrassWritableDatabase::delete_document(), and replace_document().
| void BrassValueManager::get_all_values | ( | std::map< Xapian::valueno, std::string > & | values, | |
| Xapian::docid | did | |||
| ) | const |
Definition at line 490 of file brass_values.cc.
References Assert, BrassTable::get_exact_entry(), get_value(), BrassTable::is_open(), make_slot_key(), slots, termlist_table, and unpack_uint().
Referenced by BrassDocument::do_get_all_values().
| Xapian::docid BrassValueManager::get_chunk_containing_did | ( | Xapian::valueno | slot, | |
| Xapian::docid | did, | |||
| std::string & | chunk | |||
| ) | const [private] |
Definition at line 156 of file brass_values.cc.
References BrassTable::cursor_get(), LOGCALL, make_valuechunk_key(), postlist_table, unpack_uint(), and unpack_uint_preserving_sort().
Referenced by get_value().
| string BrassValueManager::get_value | ( | Xapian::docid | did, | |
| Xapian::valueno | slot | |||
| ) | const |
Definition at line 467 of file brass_values.cc.
References changes, and get_chunk_containing_did().
Referenced by BrassDocument::do_get_value(), and get_all_values().
| Xapian::doccount BrassValueManager::get_value_freq | ( | Xapian::valueno | slot | ) | const [inline] |
Definition at line 132 of file brass_values.h.
References ValueStats::freq, get_value_stats(), mru_slot, and mru_valstats.
Referenced by BrassDatabase::get_value_freq().
| std::string BrassValueManager::get_value_lower_bound | ( | Xapian::valueno | slot | ) | const [inline] |
Definition at line 137 of file brass_values.h.
References get_value_stats(), ValueStats::lower_bound, mru_slot, and mru_valstats.
Referenced by BrassDatabase::get_value_lower_bound().
| void BrassValueManager::get_value_stats | ( | Xapian::valueno | slot, | |
| ValueStats & | stats | |||
| ) | const [private] |
Definition at line 529 of file brass_values.cc.
References Xapian::BAD_VALUENO, ValueStats::clear(), ValueStats::freq, BrassTable::get_exact_entry(), LOGCALL_VOID, ValueStats::lower_bound, make_valuestats_key(), mru_slot, postlist_table, unpack_string(), unpack_uint(), and ValueStats::upper_bound.
| void BrassValueManager::get_value_stats | ( | Xapian::valueno | slot | ) | const [private] |
Get the statistics for value slot slot.
Definition at line 519 of file brass_values.cc.
References Xapian::BAD_VALUENO, LOGCALL_VOID, mru_slot, and mru_valstats.
Referenced by add_document(), delete_document(), get_value_freq(), get_value_lower_bound(), and get_value_upper_bound().
| std::string BrassValueManager::get_value_upper_bound | ( | Xapian::valueno | slot | ) | const [inline] |
Definition at line 142 of file brass_values.h.
References get_value_stats(), mru_slot, mru_valstats, and ValueStats::upper_bound.
Referenced by BrassDatabase::get_value_upper_bound().
| bool BrassValueManager::is_modified | ( | ) | const [inline] |
Definition at line 161 of file brass_values.h.
References changes.
Referenced by BrassDatabase::apply().
| void BrassValueManager::merge_changes | ( | ) |
Definition at line 327 of file brass_values.cc.
References BrassTable::add(), changes, BrassTable::del(), BrassTable::is_open(), make_slot_key(), postlist_table, slots, termlist_table, and Brass::ValueUpdater::update().
Referenced by BrassWritableDatabase::open_value_list(), and BrassDatabase::set_revision_number().
| void BrassValueManager::remove_value | ( | Xapian::docid | did, | |
| Xapian::valueno | slot | |||
| ) | [private] |
Definition at line 145 of file brass_values.cc.
References changes.
Referenced by delete_document().
| void BrassValueManager::replace_document | ( | Xapian::docid | did, | |
| const Xapian::Document & | doc, | |||
| std::map< Xapian::valueno, ValueStats > & | value_stats | |||
| ) |
Definition at line 454 of file brass_values.cc.
References add_document(), delete_document(), and Xapian::Document::internal.
Referenced by BrassWritableDatabase::replace_document().
| void BrassValueManager::reset | ( | ) | [inline] |
Ignore any old cached valuestats.
Definition at line 156 of file brass_values.h.
References Xapian::BAD_VALUENO, and mru_slot.
Referenced by BrassDatabase::open_tables(), and BrassDatabase::open_tables_consistent().
| void BrassValueManager::set_value_stats | ( | std::map< Xapian::valueno, ValueStats > & | value_stats | ) |
Write the updated statistics to the table.
If the freq member of the statistics for a particular slot is 0, the statistics for that slot will be cleared.
| value_stats | The statistics to set. |
Definition at line 562 of file brass_values.cc.
References BrassTable::add(), Xapian::BAD_VALUENO, BrassTable::del(), ValueStats::freq, LOGCALL_VOID, ValueStats::lower_bound, make_valuestats_key(), mru_slot, pack_string(), pack_uint(), postlist_table, and ValueStats::upper_bound.
Referenced by BrassWritableDatabase::apply().
std::map<Xapian::valueno, std::map<Xapian::docid, std::string> > BrassValueManager::changes [private] |
Definition at line 91 of file brass_values.h.
Referenced by add_value(), cancel(), get_value(), is_modified(), merge_changes(), and remove_value().
Xapian::valueno BrassValueManager::mru_slot [mutable, private] |
The value number for the most recently used value statistics.
Set to Xapian::BAD_VALUENO if no value statistics are currently cached.
Definition at line 80 of file brass_values.h.
Referenced by get_value_freq(), get_value_lower_bound(), get_value_stats(), get_value_upper_bound(), reset(), and set_value_stats().
ValueStats BrassValueManager::mru_valstats [mutable, private] |
The most recently used value statistics.
Definition at line 83 of file brass_values.h.
Referenced by get_value_freq(), get_value_lower_bound(), get_value_stats(), and get_value_upper_bound().
Definition at line 85 of file brass_values.h.
Referenced by get_chunk_containing_did(), get_value_stats(), merge_changes(), and set_value_stats().
std::map<Xapian::docid, std::string> BrassValueManager::slots [private] |
Definition at line 89 of file brass_values.h.
Referenced by add_document(), cancel(), delete_document(), get_all_values(), and merge_changes().
Definition at line 87 of file brass_values.h.
Referenced by add_document(), delete_document(), get_all_values(), and merge_changes().