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
CellStoreScannerIntervalBlockIndex.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
27
28
#ifndef Hypertable_RangeServer_CellStoreScannerIntervalBlockIndex_h
29
#define Hypertable_RangeServer_CellStoreScannerIntervalBlockIndex_h
30
31
#include <
Hypertable/RangeServer/CellStore.h
>
32
#include <
Hypertable/RangeServer/CellStoreScannerInterval.h
>
33
#include <
Hypertable/RangeServer/ScanContext.h
>
34
35
#include <
Common/DynamicBuffer.h
>
36
37
namespace
Hypertable
{
38
39
class
BlockCompressionCodec
;
40
43
46
template
<
typename
IndexT>
47
class
CellStoreScannerIntervalBlockIndex
:
public
CellStoreScannerInterval
{
48
public
:
49
50
typedef
typename
IndexT::iterator
IndexIteratorT
;
51
52
CellStoreScannerIntervalBlockIndex
(
CellStorePtr
&cellstore, IndexT *index,
53
SerializedKey
start_key,
SerializedKey
end_key,
ScanContext
*scan_ctx);
54
virtual
~CellStoreScannerIntervalBlockIndex
();
55
virtual
void
forward
();
56
virtual
bool
get
(
Key
&key,
ByteString
&value);
57
58
private
:
59
60
bool
fetch_next_block
(
bool
eob=
false
);
61
62
CellStorePtr
m_cellstore
;
63
IndexT *
m_index
{};
64
IndexIteratorT
m_iter
;
65
BlockInfo
m_block
;
66
Key
m_key
;
67
SerializedKey
m_cur_key
;
68
ByteString
m_cur_value
;
69
SerializedKey
m_start_key
;
70
SerializedKey
m_end_key
;
71
const
char
*
m_end_row
{};
72
DynamicBuffer
m_key_buf
;
73
BlockCompressionCodec
*
m_zcodec
{};
74
KeyDecompressor
*
m_key_decompressor
{};
75
int32_t
m_fd
{-1};
76
bool
m_cached
{};
77
bool
m_check_for_range_end
{};
78
int
m_file_id
{};
79
ScanContext
*
m_scan_ctx
{};
80
ScanContext::CstrRowSet
&
m_rowset
;
81
};
82
84
}
85
86
#endif // Hypertable_RangeServer_CellStoreScannerIntervalBlockIndex_h
Hypertable::CellStoreScannerIntervalBlockIndex::m_iter
IndexIteratorT m_iter
Definition:
CellStoreScannerIntervalBlockIndex.h:64
Hypertable::CellStoreScannerIntervalBlockIndex::m_start_key
SerializedKey m_start_key
Definition:
CellStoreScannerIntervalBlockIndex.h:69
Hypertable::CellStoreScannerIntervalBlockIndex::m_key_buf
DynamicBuffer m_key_buf
Definition:
CellStoreScannerIntervalBlockIndex.h:72
Hypertable::CellStoreScannerIntervalBlockIndex::m_cellstore
CellStorePtr m_cellstore
Definition:
CellStoreScannerIntervalBlockIndex.h:62
CellStoreScannerInterval.h
Hypertable::CellStoreScannerIntervalBlockIndex::m_fd
int32_t m_fd
Definition:
CellStoreScannerIntervalBlockIndex.h:75
Hypertable::CellStoreScannerIntervalBlockIndex::m_end_key
SerializedKey m_end_key
Definition:
CellStoreScannerIntervalBlockIndex.h:70
Hypertable::CellStoreScannerIntervalBlockIndex::m_scan_ctx
ScanContext * m_scan_ctx
Definition:
CellStoreScannerIntervalBlockIndex.h:79
Hypertable::ScanContext
Scan context information.
Definition:
ScanContext.h:52
Hypertable::CellStoreScannerIntervalBlockIndex::m_cur_key
SerializedKey m_cur_key
Definition:
CellStoreScannerIntervalBlockIndex.h:67
Hypertable::DynamicBuffer
A dynamic, resizable and reference counted memory buffer.
Definition:
DynamicBuffer.h:42
Hypertable::CellStoreScannerInterval
Definition:
CellStoreScannerInterval.h:30
Hypertable::ByteString
A class managing one or more serializable ByteStrings.
Definition:
ByteString.h:47
CellStore.h
Declarations for CellStore.
Hypertable::SerializedKey
Definition:
SerializedKey.h:30
DynamicBuffer.h
A dynamic, resizable memory buffer.
ScanContext.h
Declarations for ScanContext.
Hypertable::CellStoreScannerIntervalBlockIndex::m_file_id
int m_file_id
Definition:
CellStoreScannerIntervalBlockIndex.h:78
Hypertable::CellStoreScannerIntervalBlockIndex::m_rowset
ScanContext::CstrRowSet & m_rowset
Definition:
CellStoreScannerIntervalBlockIndex.h:80
Hypertable::KeyDecompressor
Definition:
KeyDecompressor.h:30
Hypertable::ScanContext::CstrRowSet
std::set< const char *, LtCstr, CstrAlloc > CstrRowSet
Definition:
ScanContext.h:75
Hypertable::CellStoreScannerIntervalBlockIndex::~CellStoreScannerIntervalBlockIndex
virtual ~CellStoreScannerIntervalBlockIndex()
Definition:
CellStoreScannerIntervalBlockIndex.cc:106
Hypertable::CellStorePtr
std::shared_ptr< CellStore > CellStorePtr
Smart pointer to CellStore.
Definition:
CellStore.h:340
Hypertable
Hypertable definitions
Definition:
ApplicationHandler.h:36
Hypertable::CellStoreScannerIntervalBlockIndex
Provides the ability to scan over a portion of a cell store using its block index.
Definition:
CellStoreScannerIntervalBlockIndex.h:47
Hypertable::CellStoreScannerIntervalBlockIndex::m_key_decompressor
KeyDecompressor * m_key_decompressor
Definition:
CellStoreScannerIntervalBlockIndex.h:74
Hypertable::Key
Provides access to internal components of opaque key.
Definition:
Key.h:40
Hypertable::CellStoreScannerIntervalBlockIndex::m_block
BlockInfo m_block
Definition:
CellStoreScannerIntervalBlockIndex.h:65
Hypertable::CellStoreScannerIntervalBlockIndex::m_cached
bool m_cached
Definition:
CellStoreScannerIntervalBlockIndex.h:76
Hypertable::CellStoreScannerIntervalBlockIndex::m_check_for_range_end
bool m_check_for_range_end
Definition:
CellStoreScannerIntervalBlockIndex.h:77
Hypertable::CellStoreScannerIntervalBlockIndex::m_end_row
const char * m_end_row
Definition:
CellStoreScannerIntervalBlockIndex.h:71
Hypertable::CellStoreScannerIntervalBlockIndex::m_index
IndexT * m_index
Definition:
CellStoreScannerIntervalBlockIndex.h:63
Hypertable::CellStoreScannerIntervalBlockIndex::forward
virtual void forward()
Definition:
CellStoreScannerIntervalBlockIndex.cc:132
Hypertable::CellStoreScannerIntervalBlockIndex::CellStoreScannerIntervalBlockIndex
CellStoreScannerIntervalBlockIndex(CellStorePtr &cellstore, IndexT *index, SerializedKey start_key, SerializedKey end_key, ScanContext *scan_ctx)
Definition:
CellStoreScannerIntervalBlockIndex.cc:50
Hypertable::CellStoreScannerIntervalBlockIndex::m_cur_value
ByteString m_cur_value
Definition:
CellStoreScannerIntervalBlockIndex.h:68
Hypertable::CellStoreScannerIntervalBlockIndex::fetch_next_block
bool fetch_next_block(bool eob=false)
This method fetches the 'next' compressed block of key/value pairs from the underlying CellStore...
Definition:
CellStoreScannerIntervalBlockIndex.cc:187
Hypertable::CellStoreScannerIntervalBlockIndex::IndexIteratorT
IndexT::iterator IndexIteratorT
Definition:
CellStoreScannerIntervalBlockIndex.h:50
Hypertable::BlockCompressionCodec
Abstract base class for block compression codecs.
Definition:
BlockCompressionCodec.h:47
Hypertable::CellStoreScannerIntervalBlockIndex::m_key
Key m_key
Definition:
CellStoreScannerIntervalBlockIndex.h:66
Hypertable::CellStoreScannerIntervalBlockIndex::m_zcodec
BlockCompressionCodec * m_zcodec
Definition:
CellStoreScannerIntervalBlockIndex.h:73
Generated on Tue Dec 22 2015 18:43:15 for Hypertable by
1.8.8