0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Hypertable::CellCacheScanner Class Reference

Provides a scanning interface to a CellCache. More...

#include <CellCacheScanner.h>

Inheritance diagram for Hypertable::CellCacheScanner:
Inheritance graph
[legend]
Collaboration diagram for Hypertable::CellCacheScanner:
Collaboration graph
[legend]

Classes

class  CellCacheEntry
 

Public Types

typedef std::map< const
SerializedKey, uint32_t > 
CellCacheMap
 

Public Member Functions

 CellCacheScanner (CellCachePtr cellcache, ScanContext *scan_ctx)
 
virtual ~CellCacheScanner ()
 
virtual void forward ()
 
virtual bool get (Key &key, ByteString &value)
 
virtual int64_t get_disk_read ()
 
- Public Member Functions inherited from Hypertable::CellListScanner
 CellListScanner ()
 
 CellListScanner (ScanContext *scan_ctx)
 
virtual ~CellListScanner ()
 
ScanContextscan_context ()
 
void add_disk_read (int64_t amount)
 

Private Member Functions

bool internal_get ()
 
void internal_forward ()
 
void load_entry_cache ()
 

Private Attributes

CellCache::CellMap::iterator m_start_iter
 
CellCache::CellMap::iterator m_end_iter
 
CellCache::CellMap::iterator m_cur_iter
 
CellCacheMap::iterator m_delete_iter
 
CellCachePtr m_cell_cache_ptr
 
std::mutex & m_cell_cache_mutex
 
CellCacheEntry m_cur_entry
 
std::vector< CellCacheEntrym_entry_cache
 
size_t m_entry_cache_next {}
 
CellCacheMap m_deletes
 
bool m_in_deletes {}
 
bool m_eos {}
 
bool m_keys_only {}
 

Additional Inherited Members

- Protected Attributes inherited from Hypertable::CellListScanner
uint64_t m_disk_read {}
 
ScanContextm_scan_context_ptr {}
 

Detailed Description

Provides a scanning interface to a CellCache.

Definition at line 34 of file CellCacheScanner.h.

Member Typedef Documentation

typedef std::map<const SerializedKey, uint32_t> Hypertable::CellCacheScanner::CellCacheMap

Definition at line 43 of file CellCacheScanner.h.

Constructor & Destructor Documentation

CellCacheScanner::CellCacheScanner ( CellCachePtr  cellcache,
ScanContext scan_ctx 
)

Figure out what potential start ROW and CF delete keys look like. We only need to worry about this if the scan starts in the middle of the row, ie the scan ctx has defined cell intervals. Further we only need to worry about CF deletes if this scan starts in the middle of a column family ie, the scan contains a qualified column.

Look for any DELETE_ROW records for this row and add them to the m_deletes map

Definition at line 37 of file CellCacheScanner.cc.

virtual Hypertable::CellCacheScanner::~CellCacheScanner ( )
inlinevirtual

Definition at line 37 of file CellCacheScanner.h.

Member Function Documentation

void CellCacheScanner::forward ( )
virtual

Implements Hypertable::CellListScanner.

Definition at line 148 of file CellCacheScanner.cc.

bool CellCacheScanner::get ( Key key,
ByteString value 
)
virtual

Implements Hypertable::CellListScanner.

Definition at line 130 of file CellCacheScanner.cc.

virtual int64_t Hypertable::CellCacheScanner::get_disk_read ( )
inlinevirtual

Implements Hypertable::CellListScanner.

Definition at line 41 of file CellCacheScanner.h.

void CellCacheScanner::internal_forward ( )
private

Definition at line 172 of file CellCacheScanner.cc.

bool CellCacheScanner::internal_get ( )
private

Definition at line 153 of file CellCacheScanner.cc.

void CellCacheScanner::load_entry_cache ( )
private

Definition at line 204 of file CellCacheScanner.cc.

Member Data Documentation

std::mutex& Hypertable::CellCacheScanner::m_cell_cache_mutex
private

Definition at line 63 of file CellCacheScanner.h.

CellCachePtr Hypertable::CellCacheScanner::m_cell_cache_ptr
private

Definition at line 62 of file CellCacheScanner.h.

CellCacheEntry Hypertable::CellCacheScanner::m_cur_entry
private

Definition at line 64 of file CellCacheScanner.h.

CellCache::CellMap::iterator Hypertable::CellCacheScanner::m_cur_iter
private

Definition at line 60 of file CellCacheScanner.h.

CellCacheMap::iterator Hypertable::CellCacheScanner::m_delete_iter
private

Definition at line 61 of file CellCacheScanner.h.

CellCacheMap Hypertable::CellCacheScanner::m_deletes
private

Definition at line 67 of file CellCacheScanner.h.

CellCache::CellMap::iterator Hypertable::CellCacheScanner::m_end_iter
private

Definition at line 59 of file CellCacheScanner.h.

std::vector<CellCacheEntry> Hypertable::CellCacheScanner::m_entry_cache
private

Definition at line 65 of file CellCacheScanner.h.

size_t Hypertable::CellCacheScanner::m_entry_cache_next {}
private

Definition at line 66 of file CellCacheScanner.h.

bool Hypertable::CellCacheScanner::m_eos {}
private

Definition at line 69 of file CellCacheScanner.h.

bool Hypertable::CellCacheScanner::m_in_deletes {}
private

Definition at line 68 of file CellCacheScanner.h.

bool Hypertable::CellCacheScanner::m_keys_only {}
private

Definition at line 70 of file CellCacheScanner.h.

CellCache::CellMap::iterator Hypertable::CellCacheScanner::m_start_iter
private

Definition at line 58 of file CellCacheScanner.h.


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