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

Public Member Functions

 DBConstructor (const Comparator *cmp)
 
 ~DBConstructor ()
 
virtual Status FinishImpl (const Options &options, const KVMap &data)
 
virtual IteratorNewIterator () const
 
virtual DBdb () const
 
- Public Member Functions inherited from leveldb::Constructor
 Constructor (const Comparator *cmp)
 
virtual ~Constructor ()
 
void Add (const std::string &key, const Slice &value)
 
void Finish (const Options &options, std::vector< std::string > *keys, KVMap *kvmap)
 
virtual const KVMapdata ()
 

Private Member Functions

void NewDB ()
 

Private Attributes

const Comparatorcomparator_
 
DBdb_
 

Detailed Description

Definition at line 349 of file table_test.cc.

Constructor & Destructor Documentation

§ DBConstructor()

leveldb::DBConstructor::DBConstructor ( const Comparator cmp)
inlineexplicit

Definition at line 351 of file table_test.cc.

352  : Constructor(cmp),
353  comparator_(cmp) {
354  db_ = NULL;
355  NewDB();
356  }
Constructor(const Comparator *cmp)
Definition: table_test.cc:143
const Comparator * comparator_
Definition: table_test.cc:395

§ ~DBConstructor()

leveldb::DBConstructor::~DBConstructor ( )
inline

Definition at line 357 of file table_test.cc.

357  {
358  delete db_;
359  }

Member Function Documentation

§ db()

virtual DB* leveldb::DBConstructor::db ( ) const
inlinevirtual

Reimplemented from leveldb::Constructor.

Definition at line 377 of file table_test.cc.

377 { return db_; }

§ FinishImpl()

virtual Status leveldb::DBConstructor::FinishImpl ( const Options options,
const KVMap data 
)
inlinevirtual

Implements leveldb::Constructor.

Definition at line 360 of file table_test.cc.

360  {
361  delete db_;
362  db_ = NULL;
363  NewDB();
364  for (KVMap::const_iterator it = data.begin();
365  it != data.end();
366  ++it) {
367  WriteBatch batch;
368  batch.Put(it->first, it->second);
369  ASSERT_TRUE(db_->Write(WriteOptions(), &batch).ok());
370  }
371  return Status::OK();
372  }
static Status OK()
Definition: status.h:32
#define ASSERT_TRUE(c)
Definition: testharness.h:105
virtual Status Write(const WriteOptions &options, WriteBatch *updates)=0
virtual const KVMap & data()
Definition: table_test.cc:173
bool ok() const
Definition: status.h:52
Here is the call graph for this function:

§ NewDB()

void leveldb::DBConstructor::NewDB ( )
inlineprivate

Definition at line 380 of file table_test.cc.

380  {
381  std::string name = test::TmpDir() + "/table_testdb";
382 
383  Options options;
384  options.comparator = comparator_;
385  Status status = DestroyDB(name, options);
386  ASSERT_TRUE(status.ok()) << status.ToString();
387 
388  options.create_if_missing = true;
389  options.error_if_exists = true;
390  options.write_buffer_size = 10000; // Something small to force merging
391  status = DB::Open(options, name, &db_);
392  ASSERT_TRUE(status.ok()) << status.ToString();
393  }
std::string TmpDir()
Definition: testharness.cc:60
Status DestroyDB(const std::string &dbname, const Options &options)
Definition: db_impl.cc:1537
static Status Open(const Options &options, const std::string &name, DB **dbptr)
Definition: db_impl.cc:1490
#define ASSERT_TRUE(c)
Definition: testharness.h:105
const Comparator * comparator_
Definition: table_test.cc:395
Here is the call graph for this function:

§ NewIterator()

virtual Iterator* leveldb::DBConstructor::NewIterator ( ) const
inlinevirtual

Implements leveldb::Constructor.

Definition at line 373 of file table_test.cc.

373  {
374  return db_->NewIterator(ReadOptions());
375  }
virtual Iterator * NewIterator(const ReadOptions &options)=0

Member Data Documentation

§ comparator_

const Comparator* leveldb::DBConstructor::comparator_
private

Definition at line 395 of file table_test.cc.

§ db_

DB* leveldb::DBConstructor::db_
private

Definition at line 396 of file table_test.cc.


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