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  }