| 
    xapian-core
    1.4.29
    
   | 
 
#include <glass_freelist.h>
 Collaboration diagram for GlassFreeList: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.