資源簡(jiǎn)介
levelDB,1.14-1.15-1.16的源代碼,做區(qū)塊鏈必備之神器。。

代碼片段和文件信息
/*?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?“l(fā)eveldb/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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????61??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\.gitignore
?????文件????????193??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\AUTHORS
?????文件???????5203??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\build_detect_platform
?????文件???????2163??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\builder.cc
?????文件???????1102??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\builder.h
?????文件??????15786??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\c.cc
?????文件???????9777??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\corruption_test.cc
?????文件??????11199??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\c_test.c
?????文件???????4523??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\dbformat.cc
?????文件???????7791??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\dbformat.h
?????文件???????3803??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\dbformat_test.cc
?????文件??????28717??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_bench.cc
?????文件??????43499??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_impl.cc
?????文件???????6515??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_impl.h
?????文件???????8091??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_iter.cc
?????文件????????805??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_iter.h
?????文件??????55592??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\db_test.cc
?????文件???????3920??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\filename.cc
?????文件???????2816??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\filename.h
?????文件???????3375??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\filename_test.cc
?????文件????????897??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_format.h
?????文件???????7981??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_reader.cc
?????文件???????3572??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_reader.h
?????文件??????13078??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_test.cc
?????文件???????2844??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_writer.cc
?????文件???????1287??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\log_writer.h
?????文件???????4783??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\memtable.cc
?????文件???????2737??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\memtable.h
?????文件??????11873??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\repair.cc
?????文件??????11177??2012-05-01?04:31??levelDB-1.14-1.15-1.16三個(gè)版本的源碼\leveldb-1.14.0\db\skiplist.h
............此處省略456個(gè)文件信息
評(píng)論
共有 條評(píng)論