leveldb
Public Member Functions | Public Attributes | List of all members
leveldb::log::LogTest::StringSource Class Reference
Inheritance diagram for leveldb::log::LogTest::StringSource:
Inheritance graph
[legend]
Collaboration diagram for leveldb::log::LogTest::StringSource:
Collaboration graph
[legend]

Public Member Functions

 StringSource ()
 
virtual Status Read (size_t n, Slice *result, char *scratch)
 
virtual Status Skip (uint64_t n)
 
- Public Member Functions inherited from leveldb::SequentialFile
 SequentialFile ()
 
virtual ~SequentialFile ()
 

Public Attributes

Slice contents_
 
bool force_error_
 
bool returned_partial_
 

Detailed Description

Definition at line 54 of file log_test.cc.

Constructor & Destructor Documentation

§ StringSource()

leveldb::log::LogTest::StringSource::StringSource ( )
inline

Definition at line 59 of file log_test.cc.

Member Function Documentation

§ Read()

virtual Status leveldb::log::LogTest::StringSource::Read ( size_t  n,
Slice result,
char *  scratch 
)
inlinevirtual

Implements leveldb::SequentialFile.

Definition at line 61 of file log_test.cc.

61  {
62  ASSERT_TRUE(!returned_partial_) << "must not Read() after eof/error";
63 
64  if (force_error_) {
65  force_error_ = false;
66  returned_partial_ = true;
67  return Status::Corruption("read error");
68  }
69 
70  if (contents_.size() < n) {
71  n = contents_.size();
72  returned_partial_ = true;
73  }
74  *result = Slice(contents_.data(), n);
76  return Status::OK();
77  }
static Status Corruption(const Slice &msg, const Slice &msg2=Slice())
Definition: status.h:38
static Status OK()
Definition: status.h:32
#define ASSERT_TRUE(c)
Definition: testharness.h:105
void remove_prefix(size_t n)
Definition: slice.h:59
const char * data() const
Definition: slice.h:40
size_t size() const
Definition: slice.h:43
Here is the call graph for this function:

§ Skip()

virtual Status leveldb::log::LogTest::StringSource::Skip ( uint64_t  n)
inlinevirtual

Implements leveldb::SequentialFile.

Definition at line 79 of file log_test.cc.

79  {
80  if (n > contents_.size()) {
81  contents_.clear();
82  return Status::NotFound("in-memory file skipped past end");
83  }
84 
86 
87  return Status::OK();
88  }
static Status NotFound(const Slice &msg, const Slice &msg2=Slice())
Definition: status.h:35
static Status OK()
Definition: status.h:32
void remove_prefix(size_t n)
Definition: slice.h:59
void clear()
Definition: slice.h:56
size_t size() const
Definition: slice.h:43
Here is the call graph for this function:

Member Data Documentation

§ contents_

Slice leveldb::log::LogTest::StringSource::contents_

Definition at line 56 of file log_test.cc.

§ force_error_

bool leveldb::log::LogTest::StringSource::force_error_

Definition at line 57 of file log_test.cc.

§ returned_partial_

bool leveldb::log::LogTest::StringSource::returned_partial_

Definition at line 58 of file log_test.cc.


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