• 大小: 849KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: levelDB  

资源简介

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个文件信息

评论

共有 条评论