91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 218KB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-15
  • 語言: C/C++
  • 標(biāo)簽: leveldb??

資源簡介

LevelDb是能夠處理十億級別規(guī)模Key-Value型數(shù)據(jù)持久性存儲的C++ 程序庫。LevelDb是一個(gè)持久化存儲的KV系統(tǒng),和Redis這種內(nèi)存型的KV系統(tǒng)不同,LevelDb不會像Redis一樣狂吃內(nèi)存,而是將大部分?jǐn)?shù)據(jù)存儲到磁盤上。

資源截圖

代碼片段和文件信息

/*?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;
}

static?const?char*?GetTempDir(void)?{
????const?char*?ret?=?getenv(“TEST_TMPDIR“);
????if?(ret?==?NULL?||?ret[0]?==?‘\0‘)
????????ret?=?“/tmp“;
????return?ret;
}

#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???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?=?

評論

共有 條評論

相關(guān)資源