资源简介
levelDB,1.14-1.15-1.16的源代码,做区块链必备之神器。。
代码片段和文件信息
/* Copyright (c) 2011 The LevelDB Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. See the AUTHORS file for names of contributors. */
#include “leveldb/c.h“
#include
#include
#include
#include
#include
#include
const char* phase = ““;
static char dbname[200];
static void StartPhase(const char* name) {
fprintf(stderr “=== Test %s\n“ name);
phase = name;
}
#define CheckNoError(err) \
if ((err) != NULL) { \
fprintf(stderr “%s:%d: %s: %s\n“ __FILE__ __LINE__ phase (err)); \
abort(); \
}
#define CheckCondition(cond) \
if (!(cond)) { \
fprintf(stderr “%s:%d: %s: %s\n“ __FILE__ __LINE__ phase #cond); \
abort(); \
}
static void CheckEqual(const char* expected const char* v size_t n) {
if (expected == NULL && v == NULL) {
// ok
} else if (expected != NULL && v != NULL && n == strlen(expected) &&
memcmp(expected v n) == 0) {
// ok
return;
} else {
fprintf(stderr “%s: expected ‘%s‘ got ‘%s‘\n“
phase
(expected ? expected : “(null)“)
(v ? v : “(null“));
abort();
}
}
static void Free(char** ptr) {
if (*ptr) {
free(*ptr);
*ptr = NULL;
}
}
static void CheckGet(
leveldb_t* db
const leveldb_readoptions_t* options
const char* key
const char* expected) {
char* err = NULL;
size_t val_len;
char* val;
val = leveldb_get(db options key strlen(key) &val_len &err);
CheckNoError(err);
CheckEqual(expected val val_len);
Free(&val);
}
static void CheckIter(leveldb_iterator_t* iter
const char* key const char* val) {
size_t len;
const char* str;
str = leveldb_iter_key(iter &len);
CheckEqual(key str len);
str = leveldb_iter_value(iter &len);
CheckEqual(val str len);
}
// Callback from leveldb_writebatch_iterate()
static void CheckPut(void* ptr
const char* k size_t klen
const char* v size_t vlen) {
int* state = (int*) ptr;
CheckCondition(*state < 2);
switch (*state) {
case 0:
CheckEqual(“bar“ k klen);
CheckEqual(“b“ v vlen);
break;
case 1:
CheckEqual(“box“ k klen);
CheckEqual(“c“ v vlen);
break;
}
(*state)++;
}
// Callback from leveldb_writebatch_iterate()
static void CheckDel(void* ptr const char* k size_t klen) {
int* state = (int*) ptr;
CheckCondition(*state == 2);
CheckEqual(“bar“ k klen);
(*state)++;
}
static void CmpDestroy(void* arg) { }
static int CmpCompare(void* arg c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 61 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\.gitignore
文件 193 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\AUTHORS
文件 5203 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\build_detect_platform
文件 2163 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\builder.cc
文件 1102 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\builder.h
文件 15786 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\c.cc
文件 9777 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\corruption_test.cc
文件 11199 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\c_test.c
文件 4523 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\dbformat.cc
文件 7791 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\dbformat.h
文件 3803 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\dbformat_test.cc
文件 28717 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_bench.cc
文件 43499 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_impl.cc
文件 6515 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_impl.h
文件 8091 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_iter.cc
文件 805 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_iter.h
文件 55592 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\db_test.cc
文件 3920 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\filename.cc
文件 2816 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\filename.h
文件 3375 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\filename_test.cc
文件 897 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_format.h
文件 7981 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_reader.cc
文件 3572 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_reader.h
文件 13078 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_test.cc
文件 2844 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_writer.cc
文件 1287 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\log_writer.h
文件 4783 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\memtable.cc
文件 2737 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\memtable.h
文件 11873 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\repair.cc
文件 11177 2012-05-01 04:31 levelDB-1.14-1.15-1.16三个版本的源码\leveldb-1.14.0\db\skiplist.h
............此处省略456个文件信息
评论
共有 条评论