xapian-core
1.4.27
|
#include <glass_freelist.h>
Public Member Functions | |
GlassFreeList () | |
void | reset () |
~GlassFreeList () | |
bool | empty () const |
uint4 | get_block (const GlassTable *B, uint4 block_size, uint4 *blk_to_free=NULL) |
uint4 | walk (const GlassTable *B, uint4 block_size, bool inclusive) |
void | mark_block_unused (const GlassTable *B, uint4 block_size, uint4 n) |
uint4 | get_revision () const |
void | set_revision (uint4 revision_) |
uint4 | get_first_unused_block () const |
void | set_first_unused_block (uint4 base) |
void | commit (const GlassTable *B, uint4 block_size) |
void | pack (std::string &buf) |
bool | unpack (const char **pstart, const char *end) |
bool | unpack (const std::string &s) |
Protected Attributes | |
uint4 | revision |
uint4 | first_unused_block |
GlassFLCursor | fl |
GlassFLCursor | fl_end |
GlassFLCursor | flw |
bool | flw_appending |
Private Member Functions | |
GlassFreeList (const GlassFreeList &) | |
void | operator= (const GlassFreeList &) |
void | read_block (const GlassTable *B, uint4 n, uint8_t *p) |
void | write_block (const GlassTable *B, uint4 n, uint8_t *p, uint4 rev) |
Private Attributes | |
uint8_t * | p |
Current freelist block. More... | |
uint8_t * | pw |
Current freelist block we're writing. More... | |
Definition at line 66 of file glass_freelist.h.
|
private |
|
inline |
Definition at line 92 of file glass_freelist.h.
|
inline |
Definition at line 105 of file glass_freelist.h.
void GlassFreeList::commit | ( | const GlassTable * | B, |
uint4 | block_size | ||
) |
Definition at line 242 of file glass_freelist.cc.
References aligned_read4(), Assert, FREELIST_END, Xapian::revision(), and UNUSED.
Referenced by GlassTable::commit(), and GlassTable::is_writable().
|
inline |
Definition at line 107 of file glass_freelist.h.
uint4 GlassFreeList::get_block | ( | const GlassTable * | B, |
uint4 | block_size, | ||
uint4 * | blk_to_free = NULL |
||
) |
Definition at line 85 of file glass_freelist.cc.
References aligned_read4(), Assert, BLK_UNUSED, C_BASE, FREELIST_END, Xapian::Internal::str(), and UNUSED.
|
inline |
Definition at line 119 of file glass_freelist.h.
Referenced by GlassFreeListChecker::GlassFreeListChecker(), and GlassTable::next_for_sequential().
|
inline |
Definition at line 116 of file glass_freelist.h.
References Xapian::revision().
void GlassFreeList::mark_block_unused | ( | const GlassTable * | B, |
uint4 | block_size, | ||
uint4 | n | ||
) |
Definition at line 187 of file glass_freelist.cc.
References aligned_read4(), aligned_write4(), Assert, BLK_UNUSED, C_BASE, FREELIST_END, Xapian::revision(), and UNUSED.
|
private |
|
inline |
Definition at line 126 of file glass_freelist.h.
References GlassFLCursor::pack(), and pack_uint().
Referenced by GlassTable::commit(), and GlassDatabase::compact().
|
private |
Definition at line 67 of file glass_freelist.cc.
References GET_LEVEL(), Glass::LEVEL_FREELIST, rare, and GlassTable::read_block().
Referenced by GlassTable::get_path().
|
inline |
Definition at line 99 of file glass_freelist.h.
Referenced by GlassTable::cancel().
|
inline |
Definition at line 122 of file glass_freelist.h.
Referenced by GlassDatabase::compact().
|
inline |
Definition at line 117 of file glass_freelist.h.
Referenced by GlassTable::commit().
|
inline |
Definition at line 133 of file glass_freelist.h.
References GlassFLCursor::unpack(), and unpack_uint().
Referenced by GlassTable::cancel().
|
inline |
Definition at line 145 of file glass_freelist.h.
References GlassFLCursor::unpack().
uint4 GlassFreeList::walk | ( | const GlassTable * | B, |
uint4 | block_size, | ||
bool | inclusive | ||
) |
Definition at line 140 of file glass_freelist.cc.
References aligned_read4(), Assert, C_BASE, FREELIST_END, and UNUSED.
|
private |
Definition at line 75 of file glass_freelist.cc.
References aligned_write4(), Glass::LEVEL_FREELIST, SET_LEVEL(), SET_REVISION(), and GlassTable::write_block().
Referenced by GlassTable::get_path().
|
protected |
Definition at line 78 of file glass_freelist.h.
|
protected |
Definition at line 80 of file glass_freelist.h.
|
protected |
Definition at line 80 of file glass_freelist.h.
|
protected |
Definition at line 80 of file glass_freelist.h.
|
protected |
Definition at line 82 of file glass_freelist.h.
|
private |
Current freelist block.
Definition at line 86 of file glass_freelist.h.
|
private |
Current freelist block we're writing.
Definition at line 89 of file glass_freelist.h.
|
protected |
Definition at line 76 of file glass_freelist.h.