FlintTable_base Class Reference

#include <flint_btreebase.h>

List of all members.

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
bytebit_map0
 the initial state of the bit map of blocks: 1 means in use, 0 means free
bytebit_map
 the current state of the bit map of blocks


Detailed Description

Definition at line 32 of file flint_btreebase.h.


Constructor & Destructor Documentation

FlintTable_base::FlintTable_base (  ) 

Construct an object with all zero fields.

Definition at line 88 of file flint_btreebase.cc.

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 (  ) 

Destructor - frees resources.

Definition at line 147 of file flint_btreebase.cc.

References bit_map, and bit_map0.


Member Function Documentation

bool FlintTable_base::read ( const std::string &  name,
char  ch,
std::string &  err_msg 
)

Read values from a base file.

Parameters:
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.
Returns:
true if the read succeeded, or false otherwise.

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]

Definition at line 61 of file flint_btreebase.h.

Referenced by FlintTable::next_for_sequential().

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]

Definition at line 68 of file flint_btreebase.h.

Referenced by FlintTable::create_and_open().

void FlintTable_base::set_root ( uint4  root_  )  [inline]

Definition at line 71 of file flint_btreebase.h.

Referenced by FlintTable::commit().

void FlintTable_base::set_level ( uint4  level_  )  [inline]

Definition at line 74 of file flint_btreebase.h.

Referenced by FlintTable::commit().

void FlintTable_base::set_item_count ( uint4  item_count_  )  [inline]

Definition at line 77 of file flint_btreebase.h.

Referenced by FlintTable::commit().

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

Definition at line 469 of file flint_btreebase.cc.

References bit_map, and bit_map_size.

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().


Member Data Documentation

uint4 FlintTable_base::revision [private]

Definition at line 127 of file flint_btreebase.h.

Referenced by swap().

uint4 FlintTable_base::block_size [private]

Definition at line 128 of file flint_btreebase.h.

Referenced by swap().

uint4 FlintTable_base::root [private]

Definition at line 129 of file flint_btreebase.h.

Referenced by swap().

uint4 FlintTable_base::level [private]

Definition at line 130 of file flint_btreebase.h.

Referenced by swap().

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]

Definition at line 132 of file flint_btreebase.h.

Referenced by swap().

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]

Definition at line 134 of file flint_btreebase.h.

Referenced by swap().

bool FlintTable_base::sequential [private]

Definition at line 135 of file flint_btreebase.h.

Referenced by swap().

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().


The documentation for this class was generated from the following files:
Documentation for Xapian (version 1.0.10).
Generated on 24 Dec 2008 by Doxygen 1.5.2.