0.9.8.10
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
home
doug
src
hypertable
src
cc
Hypertable
RangeServer
CellCacheScanner.h
Go to the documentation of this file.
1
/* -*- c++ -*-
2
* Copyright (C) 2007-2015 Hypertable, Inc.
3
*
4
* This file is part of Hypertable.
5
*
6
* Hypertable is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; version 3 of the
9
* License, or any later version.
10
*
11
* Hypertable is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
* 02110-1301, USA.
20
*/
21
22
#ifndef Hypertable_RangeServer_CellCacheScanner_h
23
#define Hypertable_RangeServer_CellCacheScanner_h
24
25
#include "
CellCache.h
"
26
#include "
CellListScanner.h
"
27
#include "
ScanContext.h
"
28
29
namespace
Hypertable
{
30
34
class
CellCacheScanner
:
public
CellListScanner
{
35
public
:
36
CellCacheScanner
(
CellCachePtr
cellcache,
ScanContext
*scan_ctx);
37
virtual
~CellCacheScanner
() {
return
; }
38
virtual
void
forward
();
39
virtual
bool
get
(
Key
&key,
ByteString
&value);
40
41
virtual
int64_t
get_disk_read
() {
return
0; }
42
43
typedef
std::map<const SerializedKey, uint32_t>
CellCacheMap
;
44
45
private
:
46
47
bool
internal_get
();
48
void
internal_forward
();
49
void
load_entry_cache
();
50
51
class
CellCacheEntry
{
52
public
:
53
CellCacheEntry
() :
value
(0) { };
54
Key
key
;
55
ByteString
value
;
56
};
57
58
CellCache::CellMap::iterator
m_start_iter
;
59
CellCache::CellMap::iterator
m_end_iter
;
60
CellCache::CellMap::iterator
m_cur_iter
;
61
CellCacheMap::iterator
m_delete_iter
;
62
CellCachePtr
m_cell_cache_ptr
;
63
std::mutex
&
m_cell_cache_mutex
;
64
CellCacheEntry
m_cur_entry
;
65
std::vector<CellCacheEntry>
m_entry_cache
;
66
size_t
m_entry_cache_next
{};
67
CellCacheMap
m_deletes
;
68
bool
m_in_deletes
{};
69
bool
m_eos
{};
70
bool
m_keys_only
{};
71
};
72
}
73
74
#endif // Hypertable_RangeServer_CellCacheScanner_h
75
Hypertable::Logger::mutex
static std::mutex mutex
Definition:
Logger.cc:43
Hypertable::CellCacheScanner::m_entry_cache_next
size_t m_entry_cache_next
Definition:
CellCacheScanner.h:66
Hypertable::CellCacheScanner::~CellCacheScanner
virtual ~CellCacheScanner()
Definition:
CellCacheScanner.h:37
Hypertable::CellCacheScanner::get_disk_read
virtual int64_t get_disk_read()
Definition:
CellCacheScanner.h:41
Hypertable::CellCacheScanner::CellCacheEntry::CellCacheEntry
CellCacheEntry()
Definition:
CellCacheScanner.h:53
Hypertable::CellCacheScanner::m_cur_iter
CellCache::CellMap::iterator m_cur_iter
Definition:
CellCacheScanner.h:60
CellCache.h
Hypertable::CellCacheScanner::CellCacheMap
std::map< const SerializedKey, uint32_t > CellCacheMap
Definition:
CellCacheScanner.h:43
Hypertable::CellCacheScanner::m_deletes
CellCacheMap m_deletes
Definition:
CellCacheScanner.h:67
Hypertable::CellCacheScanner::m_eos
bool m_eos
Definition:
CellCacheScanner.h:69
Hypertable::CellCacheScanner::m_cell_cache_ptr
CellCachePtr m_cell_cache_ptr
Definition:
CellCacheScanner.h:62
Hypertable::ScanContext
Scan context information.
Definition:
ScanContext.h:52
Hypertable::CellCacheScanner::CellCacheEntry::key
Key key
Definition:
CellCacheScanner.h:53
Hypertable::ByteString
A class managing one or more serializable ByteStrings.
Definition:
ByteString.h:47
Hypertable::CellCacheScanner::CellCacheEntry::value
ByteString value
Definition:
CellCacheScanner.h:55
Hypertable::CellCacheScanner
Provides a scanning interface to a CellCache.
Definition:
CellCacheScanner.h:34
ScanContext.h
Declarations for ScanContext.
Hypertable::CellCacheScanner::CellCacheScanner
CellCacheScanner(CellCachePtr cellcache, ScanContext *scan_ctx)
Definition:
CellCacheScanner.cc:37
Hypertable::CellCacheScanner::m_entry_cache
std::vector< CellCacheEntry > m_entry_cache
Definition:
CellCacheScanner.h:65
Hypertable::CellCacheScanner::internal_get
bool internal_get()
Definition:
CellCacheScanner.cc:153
Hypertable::CellCacheScanner::m_delete_iter
CellCacheMap::iterator m_delete_iter
Definition:
CellCacheScanner.h:61
Hypertable::CellCacheScanner::m_cell_cache_mutex
std::mutex & m_cell_cache_mutex
Definition:
CellCacheScanner.h:63
Hypertable
Hypertable definitions
Definition:
ApplicationHandler.h:36
Hypertable::CellCacheScanner::forward
virtual void forward()
Definition:
CellCacheScanner.cc:148
CellListScanner.h
Hypertable::CellCacheScanner::CellCacheEntry
Definition:
CellCacheScanner.h:51
Hypertable::Key
Provides access to internal components of opaque key.
Definition:
Key.h:40
Hypertable::CellCacheScanner::m_in_deletes
bool m_in_deletes
Definition:
CellCacheScanner.h:68
Hypertable::CellCacheScanner::load_entry_cache
void load_entry_cache()
Definition:
CellCacheScanner.cc:204
Hypertable::CellListScanner
Definition:
CellListScanner.h:34
Hypertable::CellCacheScanner::internal_forward
void internal_forward()
Definition:
CellCacheScanner.cc:172
Hypertable::CellCacheScanner::m_cur_entry
CellCacheEntry m_cur_entry
Definition:
CellCacheScanner.h:64
Hypertable::CellCacheScanner::m_start_iter
CellCache::CellMap::iterator m_start_iter
Definition:
CellCacheScanner.h:58
Hypertable::CellCachePtr
std::shared_ptr< CellCache > CellCachePtr
Shared smart pointer to CellCache.
Definition:
CellCache.h:163
Hypertable::CellCacheScanner::m_end_iter
CellCache::CellMap::iterator m_end_iter
Definition:
CellCacheScanner.h:59
Hypertable::CellCacheScanner::m_keys_only
bool m_keys_only
Definition:
CellCacheScanner.h:70
Generated on Tue Dec 22 2015 18:43:15 for Hypertable by
1.8.8