Leveldb

Mac OSX 10.8

install

wget http://leveldb.googlecode.com/files/leveldb-1.9.0.tar.gz
tar -zxvf leveldb-1.9.0.tar.gz 
cd leveldb-1.9.0/
make check

cp lib* /usr/local/lib/
cp include/ /usr/local/include/


put

#include <cassert>
#include <iostream>
#include <leveldb/db.h>
int main()
{

  leveldb::DB* db=NULL;
  leveldb::Options options;
  options.create_if_missing = true;
  leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
  assert(status.ok());

  leveldb::Slice key = "Hello,";
  std::string val = "World!";
  status = db->Put(leveldb::WriteOptions(), key, val);
  if(!status.ok()) std::cout<<status.ToString()<<std::endl;

  delete db;
  return(0);
}

get

#include <cassert>
#include <iostream>
#include <leveldb/db.h>
int main()
{
  leveldb::DB* db=NULL;
  leveldb::Options options;
  options.create_if_missing = true;
  leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
  assert(status.ok());

  leveldb::Slice key = "Hello,";
  std::string val;
  status = db->Get(leveldb::ReadOptions(), key, &val);
  if(!status.ok()) std::cout<<status.ToString()<<std::endl;

  std::cout<<key.ToString()<<val<<std::endl;

  delete db;
  return(0);
}


delete

#include <cassert>
#include <iostream>
#include <leveldb/db.h>
int main()
{
  leveldb::DB* db=NULL;
  leveldb::Options options;
  options.create_if_missing = true;
  leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
  assert(status.ok());

  leveldb::Slice key = "Hello,";
  status = db->Delete(leveldb::WriteOptions(), key);
  if(!status.ok()) std::cout<<status.ToString()<<std::endl;

  delete db;
  return(0);
}

complie

g++  hoge.cpp -lleveldb