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, bool read_bitmap, 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, char base_letter, const std::string &tablename, int changes_fd, const std::string *changes_tail)
 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 find_changed_block (uint4 *n)
 Find the first changed block at or after position *n.
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 F_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 31 of file flint_btreebase.h.


Constructor & Destructor Documentation

FlintTable_base::FlintTable_base (  ) 

Construct an object with all zero fields.

Definition at line 76 of file flint_btreebase.cc.

FlintTable_base::FlintTable_base ( const FlintTable_base other  ) 

Copy constructor.

Definition at line 92 of file flint_btreebase.cc.

References bit_map, bit_map0, and bit_map_size.

FlintTable_base::~FlintTable_base (  ) 

Destructor - frees resources.

Definition at line 135 of file flint_btreebase.cc.

References bit_map, and bit_map0.


Member Function Documentation

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 350 of file flint_btreebase.cc.

References bit_map0.

Referenced by FlintTable::alter(), BtreeCheck::block_check(), BtreeCheck::check(), and FlintTable::write_block().

bool FlintTable_base::block_free_now ( uint4  n  ) 

Definition at line 463 of file flint_btreebase.cc.

References bit_map.

Referenced by BtreeCheck::block_check().

void FlintTable_base::calculate_last_block (  ) 

Definition at line 471 of file flint_btreebase.cc.

References bit_map, bit_map_size, and last_block.

Referenced by FlintTable::write_changed_blocks(), and write_to_file().

void FlintTable_base::clear_bit_map (  ) 

Definition at line 509 of file flint_btreebase.cc.

References bit_map, and bit_map_size.

Referenced by FlintTable::commit().

void FlintTable_base::commit (  ) 

Definition at line 516 of file flint_btreebase.cc.

References bit_map, bit_map0, bit_map_low, and bit_map_size.

Referenced by FlintTable::commit().

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

Definition at line 144 of file flint_btreebase.cc.

References F_unpack_uint().

void FlintTable_base::extend_bit_map (  )  [private]

Definition at line 384 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::find_changed_block ( uint4 *  n  ) 

Find the first changed block at or after position *n.

Returns true if such a block was found, or false otherwise.

Definition at line 445 of file flint_btreebase.cc.

References bit_map, bit_map0, and last_block.

Referenced by FlintTable::write_changed_blocks().

void FlintTable_base::free_block ( uint4  n  ) 

uint4 FlintTable_base::get_bit_map_size (  )  const [inline]

uint4 FlintTable_base::get_block_size (  )  const [inline]

Definition at line 57 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

bool FlintTable_base::get_have_fakeroot (  )  const [inline]

Definition at line 63 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

uint4 FlintTable_base::get_item_count (  )  const [inline]

Definition at line 61 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

uint4 FlintTable_base::get_last_block (  )  const [inline]

Definition at line 62 of file flint_btreebase.h.

Referenced by BtreeCheck::check(), and FlintTable::next_for_sequential().

uint4 FlintTable_base::get_level (  )  const [inline]

Definition at line 59 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

uint4 FlintTable_base::get_revision (  )  const [inline]

Definition at line 56 of file flint_btreebase.h.

References Xapian::revision().

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

uint4 FlintTable_base::get_root (  )  const [inline]

Definition at line 58 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

bool FlintTable_base::get_sequential (  )  const [inline]

Definition at line 64 of file flint_btreebase.h.

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

bool FlintTable_base::is_empty (  )  const

Definition at line 498 of file flint_btreebase.cc.

References bit_map, and bit_map_size.

Referenced by BtreeCheck::check().

uint4 FlintTable_base::next_free_block (  ) 

void FlintTable_base::operator= ( const FlintTable_base other  )  [private]

private assignment operator - you probably want swap() instead

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

Read values from a base file.

Parameters:
name The base of the filename
ch The suffix
read_bitmap True if we should read the bitmap
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.

Definition at line 173 of file flint_btreebase.cc.

References bit_map, bit_map0, bit_map_size, block_size, CURR_FORMAT, DO_UNPACK_UINT_ERRCHECK, F_unpack_uint(), Xapian::Internal::format(), have_fakeroot, io_read(), item_count, last_block, level, msvc_posix_open(), O_BINARY, Xapian::InMemory::open(), REASONABLE_BASE_SIZE, revision, root, sequential, and Xapian::Internal::str().

Referenced by FlintTable::basic_open(), and FlintTable::cancel().

void FlintTable_base::set_block_size ( uint4  block_size_  )  [inline]

Definition at line 69 of file flint_btreebase.h.

Referenced by FlintTable::create_and_open().

void FlintTable_base::set_have_fakeroot ( bool  have_fakeroot_  )  [inline]

Definition at line 81 of file flint_btreebase.h.

Referenced by FlintTable::commit(), and FlintTable::create_and_open().

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

Definition at line 78 of file flint_btreebase.h.

Referenced by FlintTable::commit().

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

Definition at line 75 of file flint_btreebase.h.

Referenced by FlintTable::commit().

void FlintTable_base::set_revision ( uint4  revision_  )  [inline]

Definition at line 66 of file flint_btreebase.h.

References Xapian::revision().

Referenced by FlintTable::commit(), and FlintTable::create_and_open().

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

Definition at line 72 of file flint_btreebase.h.

Referenced by FlintTable::commit().

void FlintTable_base::set_sequential ( bool  sequential_  )  [inline]

Definition at line 84 of file flint_btreebase.h.

Referenced by FlintTable::commit(), and FlintTable::create_and_open().

void FlintTable_base::swap ( FlintTable_base other  ) 

void FlintTable_base::write_to_file ( const std::string &  filename,
char  base_letter,
const std::string &  tablename,
int  changes_fd,
const std::string *  changes_tail 
)


Member Data Documentation

the initial state of the bit map of blocks: 1 means in use, 0 means free

Definition at line 155 of file flint_btreebase.h.

Referenced by block_free_at_start(), commit(), extend_bit_map(), find_changed_block(), FlintTable_base(), free_block(), next_free_block(), read(), swap(), and ~FlintTable_base().

byte offset into the bit map below which there are no free blocks

Definition at line 151 of file flint_btreebase.h.

Referenced by commit(), free_block(), next_free_block(), and swap().

uint4 FlintTable_base::block_size [private]

Definition at line 139 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

Definition at line 145 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

uint4 FlintTable_base::item_count [private]

Definition at line 143 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

uint4 FlintTable_base::last_block [private]

uint4 FlintTable_base::level [private]

Definition at line 141 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

uint4 FlintTable_base::revision [private]

Definition at line 138 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

uint4 FlintTable_base::root [private]

Definition at line 140 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().

Definition at line 146 of file flint_btreebase.h.

Referenced by read(), swap(), and write_to_file().


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

Documentation for Xapian (version 1.2.8).
Generated on 14 Dec 2011 by Doxygen 1.5.9.