github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/database/leveldb/capi_helper.c (about) 1 // Copyright 2013 <chaishushan{AT}gmail.com>. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 #include "capi_helper.h" 6 #include "_cgo_export.h" 7 8 /* Write batch */ 9 10 static void leveldb_writebatch_iterate_put(void* p, 11 const char* k, size_t klen, 12 const char* v, size_t vlen 13 ) { 14 go_leveldb_writebatch_iterate_put(p, (char*)k, klen, (char*)v, vlen); 15 } 16 17 static void leveldb_writebatch_iterate_del(void* p, 18 const char* k, size_t klen 19 ) { 20 go_leveldb_writebatch_iterate_del(p, (char*)k, klen); 21 } 22 23 void go_leveldb_writebatch_iterate_helper(leveldb_writebatch_t* batch, void* state) { 24 leveldb_writebatch_iterate(batch, state, 25 leveldb_writebatch_iterate_put, 26 leveldb_writebatch_iterate_del 27 ); 28 } 29 30 /* Comparator */ 31 32 static void leveldb_comparator_create_destructor(void* state) { 33 go_leveldb_comparator_create_state_destructor(state); 34 } 35 36 static int leveldb_comparator_create_compare(void* state, 37 const char* a, size_t alen, 38 const char* b, size_t blen 39 ) { 40 return leveldb_comparator_create_compare(state, (char*)a, alen, (char*)b, blen); 41 } 42 43 static const char* leveldb_comparator_create_name(void* state) { 44 return go_leveldb_comparator_create_state_name(state); 45 } 46 47 leveldb_comparator_t* leveldb_comparator_create_helper(void* state) { 48 return leveldb_comparator_create( 49 state, 50 leveldb_comparator_create_destructor, 51 leveldb_comparator_create_compare, 52 leveldb_comparator_create_name 53 ); 54 }