#include <flint_btreebase.h>
Public Member Functions | |
FlintTable_base () | |
Construct an object with all zero fields. | |
FlintTable_base (const FlintTable_base &other) | |
Copy constructor. | |
~FlintTable_base () | |
Destructor - frees resources. | |
bool | read (const std::string &name, char ch, std::string &err_msg) |
Read values from a base file. | |
uint4 | get_revision () const |
uint4 | get_block_size () const |
uint4 | get_root () const |
uint4 | get_level () const |
uint4 | get_bit_map_size () const |
uint4 | get_item_count () const |
uint4 | get_last_block () const |
bool | get_have_fakeroot () const |
bool | get_sequential () const |
void | set_revision (uint4 revision_) |
void | set_block_size (uint4 block_size_) |
void | set_root (uint4 root_) |
void | set_level (uint4 level_) |
void | set_item_count (uint4 item_count_) |
void | set_have_fakeroot (bool have_fakeroot_) |
void | set_sequential (bool sequential_) |
void | write_to_file (const std::string &filename) |
Write the btree base file to disk. | |
bool | block_free_at_start (uint4 n) const |
true iff block n was free at the start of the transaction on the B-tree. | |
void | free_block (uint4 n) |
uint4 | next_free_block () |
bool | block_free_now (uint4 n) |
void | calculate_last_block () |
void | clear_bit_map () |
void | commit () |
bool | is_empty () const |
void | swap (FlintTable_base &other) |
Private Member Functions | |
void | operator= (const FlintTable_base &other) |
private assignment operator - you probably want swap() instead | |
void | extend_bit_map () |
bool | do_unpack_uint (const char **start, const char *end, uint4 *dest, std::string &err_msg, const std::string &basename, const char *varname) |
Do most of the error handling from unpack_uint(). | |
Private Attributes | |
uint4 | revision |
uint4 | block_size |
uint4 | root |
uint4 | level |
uint4 | bit_map_size |
uint4 | item_count |
uint4 | last_block |
bool | have_fakeroot |
bool | sequential |
uint4 | bit_map_low |
byte offset into the bit map below which there are no free blocks | |
byte * | bit_map0 |
the initial state of the bit map of blocks: 1 means in use, 0 means free | |
byte * | bit_map |
the current state of the bit map of blocks |
Definition at line 32 of file flint_btreebase.h.
FlintTable_base::FlintTable_base | ( | ) |
FlintTable_base::FlintTable_base | ( | const FlintTable_base & | other | ) |
Copy constructor.
Definition at line 104 of file flint_btreebase.cc.
References bit_map, bit_map0, and bit_map_size.
FlintTable_base::~FlintTable_base | ( | ) |
bool FlintTable_base::read | ( | const std::string & | name, | |
char | ch, | |||
std::string & | err_msg | |||
) |
Read values from a base file.
name | The base of the filename | |
ch | The suffix | |
err_msg | An error string which will be appended to for some errors instead of throwing an exception. |
Referenced by FlintTable::cancel().
uint4 FlintTable_base::get_revision | ( | ) | const [inline] |
Definition at line 55 of file flint_btreebase.h.
References Xapian::revision().
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
uint4 FlintTable_base::get_block_size | ( | ) | const [inline] |
Definition at line 56 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
uint4 FlintTable_base::get_root | ( | ) | const [inline] |
Definition at line 57 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
uint4 FlintTable_base::get_level | ( | ) | const [inline] |
Definition at line 58 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
uint4 FlintTable_base::get_bit_map_size | ( | ) | const [inline] |
Definition at line 59 of file flint_btreebase.h.
Referenced by FlintTable::read_block(), and FlintTable::write_block().
uint4 FlintTable_base::get_item_count | ( | ) | const [inline] |
Definition at line 60 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
uint4 FlintTable_base::get_last_block | ( | ) | const [inline] |
bool FlintTable_base::get_have_fakeroot | ( | ) | const [inline] |
Definition at line 62 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
bool FlintTable_base::get_sequential | ( | ) | const [inline] |
Definition at line 63 of file flint_btreebase.h.
Referenced by FlintTable::basic_open(), and FlintTable::cancel().
void FlintTable_base::set_revision | ( | uint4 | revision_ | ) | [inline] |
Definition at line 65 of file flint_btreebase.h.
References Xapian::revision().
Referenced by FlintTable::commit(), and FlintTable::create_and_open().
void FlintTable_base::set_block_size | ( | uint4 | block_size_ | ) | [inline] |
void FlintTable_base::set_root | ( | uint4 | root_ | ) | [inline] |
void FlintTable_base::set_level | ( | uint4 | level_ | ) | [inline] |
void FlintTable_base::set_item_count | ( | uint4 | item_count_ | ) | [inline] |
void FlintTable_base::set_have_fakeroot | ( | bool | have_fakeroot_ | ) | [inline] |
Definition at line 80 of file flint_btreebase.h.
Referenced by FlintTable::commit(), and FlintTable::create_and_open().
void FlintTable_base::set_sequential | ( | bool | sequential_ | ) | [inline] |
Definition at line 83 of file flint_btreebase.h.
Referenced by FlintTable::commit(), and FlintTable::create_and_open().
void FlintTable_base::write_to_file | ( | const std::string & | filename | ) |
Write the btree base file to disk.
Referenced by FlintTable::commit(), and FlintTable::create_and_open().
bool FlintTable_base::block_free_at_start | ( | uint4 | n | ) | const |
true iff block n was free at the start of the transaction on the B-tree.
Definition at line 339 of file flint_btreebase.cc.
References bit_map0.
Referenced by FlintTable::alter(), BtreeCheck::block_check(), and FlintTable::write_block().
void FlintTable_base::free_block | ( | uint4 | n | ) |
Definition at line 352 of file flint_btreebase.cc.
References bit_map, bit_map0, and bit_map_low.
Referenced by FlintTable::alter(), BtreeCheck::block_check(), and FlintTable::delete_item().
uint4 FlintTable_base::next_free_block | ( | ) |
Definition at line 411 of file flint_btreebase.cc.
References bit_map, bit_map0, bit_map_low, bit_map_size, extend_bit_map(), and last_block.
Referenced by FlintTable::add_item(), FlintTable::alter(), FlintTable::read_root(), and FlintTable::split_root().
bool FlintTable_base::block_free_now | ( | uint4 | n | ) |
Definition at line 434 of file flint_btreebase.cc.
References bit_map.
Referenced by BtreeCheck::block_check().
void FlintTable_base::calculate_last_block | ( | ) |
Definition at line 442 of file flint_btreebase.cc.
References bit_map, bit_map_size, and last_block.
void FlintTable_base::clear_bit_map | ( | ) |
Definition at line 480 of file flint_btreebase.cc.
References bit_map, and bit_map_size.
Referenced by FlintTable::commit().
void FlintTable_base::commit | ( | ) |
Definition at line 487 of file flint_btreebase.cc.
References bit_map, bit_map0, bit_map_low, and bit_map_size.
Referenced by FlintTable::commit().
bool FlintTable_base::is_empty | ( | ) | const |
void FlintTable_base::swap | ( | FlintTable_base & | other | ) |
Definition at line 131 of file flint_btreebase.cc.
References bit_map, bit_map0, bit_map_low, bit_map_size, block_size, have_fakeroot, item_count, last_block, level, revision, root, and sequential.
Referenced by FlintTable::basic_open().
void FlintTable_base::operator= | ( | const FlintTable_base & | other | ) | [private] |
private assignment operator - you probably want swap() instead
void FlintTable_base::extend_bit_map | ( | ) | [private] |
Definition at line 373 of file flint_btreebase.cc.
References bit_map, bit_map0, BIT_MAP_INC, and bit_map_size.
Referenced by next_free_block().
bool FlintTable_base::do_unpack_uint | ( | const char ** | start, | |
const char * | end, | |||
uint4 * | dest, | |||
std::string & | err_msg, | |||
const std::string & | basename, | |||
const char * | varname | |||
) | [private] |
Do most of the error handling from unpack_uint().
uint4 FlintTable_base::revision [private] |
uint4 FlintTable_base::block_size [private] |
uint4 FlintTable_base::root [private] |
uint4 FlintTable_base::level [private] |
uint4 FlintTable_base::bit_map_size [private] |
Definition at line 131 of file flint_btreebase.h.
Referenced by calculate_last_block(), clear_bit_map(), commit(), extend_bit_map(), FlintTable_base(), is_empty(), next_free_block(), and swap().
uint4 FlintTable_base::item_count [private] |
uint4 FlintTable_base::last_block [private] |
Definition at line 133 of file flint_btreebase.h.
Referenced by calculate_last_block(), next_free_block(), and swap().
bool FlintTable_base::have_fakeroot [private] |
bool FlintTable_base::sequential [private] |
uint4 FlintTable_base::bit_map_low [private] |
byte offset into the bit map below which there are no free blocks
Definition at line 140 of file flint_btreebase.h.
Referenced by commit(), free_block(), next_free_block(), and swap().
byte* FlintTable_base::bit_map0 [private] |
the initial state of the bit map of blocks: 1 means in use, 0 means free
Definition at line 144 of file flint_btreebase.h.
Referenced by block_free_at_start(), commit(), extend_bit_map(), FlintTable_base(), free_block(), next_free_block(), swap(), and ~FlintTable_base().
byte* FlintTable_base::bit_map [private] |
the current state of the bit map of blocks
Definition at line 147 of file flint_btreebase.h.
Referenced by block_free_now(), calculate_last_block(), clear_bit_map(), commit(), extend_bit_map(), FlintTable_base(), free_block(), is_empty(), next_free_block(), swap(), and ~FlintTable_base().