leveldb
Public Member Functions | Private Attributes | List of all members
leveldb::Version::LevelFileNumIterator Class Reference
Inheritance diagram for leveldb::Version::LevelFileNumIterator:
Inheritance graph
[legend]
Collaboration diagram for leveldb::Version::LevelFileNumIterator:
Collaboration graph
[legend]

Public Member Functions

 LevelFileNumIterator (const InternalKeyComparator &icmp, const std::vector< FileMetaData *> *flist)
 
virtual bool Valid () const
 
virtual void Seek (const Slice &target)
 
virtual void SeekToFirst ()
 
virtual void SeekToLast ()
 
virtual void Next ()
 
virtual void Prev ()
 
Slice key () const
 
Slice value () const
 
virtual Status status () const
 
- Public Member Functions inherited from leveldb::Iterator
 Iterator ()
 
virtual ~Iterator ()
 
void RegisterCleanup (CleanupFunction function, void *arg1, void *arg2)
 

Private Attributes

const InternalKeyComparator icmp_
 
const std::vector< FileMetaData * > *const flist_
 
uint32_t index_
 
char value_buf_ [16]
 

Additional Inherited Members

- Public Types inherited from leveldb::Iterator
typedef void(* CleanupFunction) (void *arg1, void *arg2)
 

Detailed Description

Definition at line 163 of file version_set.cc.

Constructor & Destructor Documentation

§ LevelFileNumIterator()

leveldb::Version::LevelFileNumIterator::LevelFileNumIterator ( const InternalKeyComparator icmp,
const std::vector< FileMetaData *> *  flist 
)
inline

Definition at line 165 of file version_set.cc.

167  : icmp_(icmp),
168  flist_(flist),
169  index_(flist->size()) { // Marks as invalid
170  }
const InternalKeyComparator icmp_
Definition: version_set.cc:205
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206

Member Function Documentation

§ key()

Slice leveldb::Version::LevelFileNumIterator::key ( ) const
inlinevirtual

Implements leveldb::Iterator.

Definition at line 193 of file version_set.cc.

193  {
194  assert(Valid());
195  return (*flist_)[index_]->largest.Encode();
196  }
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206

§ Next()

virtual void leveldb::Version::LevelFileNumIterator::Next ( )
inlinevirtual

Implements leveldb::Iterator.

Definition at line 181 of file version_set.cc.

181  {
182  assert(Valid());
183  index_++;
184  }

§ Prev()

virtual void leveldb::Version::LevelFileNumIterator::Prev ( )
inlinevirtual

Implements leveldb::Iterator.

Definition at line 185 of file version_set.cc.

185  {
186  assert(Valid());
187  if (index_ == 0) {
188  index_ = flist_->size(); // Marks as invalid
189  } else {
190  index_--;
191  }
192  }
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206

§ Seek()

virtual void leveldb::Version::LevelFileNumIterator::Seek ( const Slice target)
inlinevirtual

Implements leveldb::Iterator.

Definition at line 174 of file version_set.cc.

174  {
175  index_ = FindFile(icmp_, *flist_, target);
176  }
int FindFile(const InternalKeyComparator &icmp, const std::vector< FileMetaData *> &files, const Slice &key)
Definition: version_set.cc:86
const InternalKeyComparator icmp_
Definition: version_set.cc:205
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206
Here is the call graph for this function:

§ SeekToFirst()

virtual void leveldb::Version::LevelFileNumIterator::SeekToFirst ( )
inlinevirtual

Implements leveldb::Iterator.

Definition at line 177 of file version_set.cc.

§ SeekToLast()

virtual void leveldb::Version::LevelFileNumIterator::SeekToLast ( )
inlinevirtual

Implements leveldb::Iterator.

Definition at line 178 of file version_set.cc.

178  {
179  index_ = flist_->empty() ? 0 : flist_->size() - 1;
180  }
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206

§ status()

virtual Status leveldb::Version::LevelFileNumIterator::status ( ) const
inlinevirtual

Implements leveldb::Iterator.

Definition at line 203 of file version_set.cc.

203 { return Status::OK(); }
static Status OK()
Definition: status.h:32
Here is the call graph for this function:

§ Valid()

virtual bool leveldb::Version::LevelFileNumIterator::Valid ( ) const
inlinevirtual

Implements leveldb::Iterator.

Definition at line 171 of file version_set.cc.

171  {
172  return index_ < flist_->size();
173  }
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206

§ value()

Slice leveldb::Version::LevelFileNumIterator::value ( ) const
inlinevirtual

Implements leveldb::Iterator.

Definition at line 197 of file version_set.cc.

197  {
198  assert(Valid());
199  EncodeFixed64(value_buf_, (*flist_)[index_]->number);
200  EncodeFixed64(value_buf_+8, (*flist_)[index_]->file_size);
201  return Slice(value_buf_, sizeof(value_buf_));
202  }
void EncodeFixed64(char *buf, uint64_t value)
Definition: coding.cc:20
const std::vector< FileMetaData * > *const flist_
Definition: version_set.cc:206
Here is the call graph for this function:

Member Data Documentation

§ flist_

const std::vector<FileMetaData*>* const leveldb::Version::LevelFileNumIterator::flist_
private

Definition at line 206 of file version_set.cc.

§ icmp_

const InternalKeyComparator leveldb::Version::LevelFileNumIterator::icmp_
private

Definition at line 205 of file version_set.cc.

§ index_

uint32_t leveldb::Version::LevelFileNumIterator::index_
private

Definition at line 207 of file version_set.cc.

§ value_buf_

char leveldb::Version::LevelFileNumIterator::value_buf_[16]
mutableprivate

Definition at line 210 of file version_set.cc.


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