@ -47,6 +47,7 @@ extern "C" {
# include <stdarg.h>
# include <stdarg.h>
# include <stddef.h>
# include <stddef.h>
# include <stdint.h>
# include <stdint.h>
# include "leveldb/export.h"
/* Exported types */
/* Exported types */
@ -69,204 +70,178 @@ typedef struct leveldb_writeoptions_t leveldb_writeoptions_t;
/* DB operations */
/* DB operations */
extern leveldb_t * leveldb_open (
const leveldb_options_t * options ,
const char * name ,
char * * errptr ) ;
LEVELDB_EXPORT leveldb_t * leveldb_open ( const leveldb_options_t * options ,
const char * name , char * * errptr ) ;
extern void leveldb_close ( leveldb_t * db ) ;
LEVELDB_EXPORT void leveldb_close ( leveldb_t * db ) ;
extern void leveldb_put (
leveldb_t * db ,
const leveldb_writeoptions_t * options ,
const char * key , size_t keylen ,
const char * val , size_t vallen ,
char * * errptr ) ;
LEVELDB_EXPORT void leveldb_put ( leveldb_t * db ,
const leveldb_writeoptions_t * options ,
const char * key , size_t keylen , const char * val ,
size_t vallen , char * * errptr ) ;
extern void leveldb_delete (
leveldb_t * db ,
const leveldb_writeoptions_t * options ,
const char * key , size_t keylen ,
char * * errptr ) ;
LEVELDB_EXPORT void leveldb_delete ( leveldb_t * db ,
const leveldb_writeoptions_t * options ,
const char * key , size_t keylen ,
char * * errptr ) ;
extern void leveldb_write (
leveldb_t * db ,
const leveldb_writeoptions_t * options ,
leveldb_writebatch_t * batch ,
char * * errptr ) ;
LEVELDB_EXPORT void leveldb_write ( leveldb_t * db ,
const leveldb_writeoptions_t * options ,
leveldb_writebatch_t * batch , char * * errptr ) ;
/* Returns NULL if not found. A malloc()ed array otherwise.
/* Returns NULL if not found. A malloc()ed array otherwise.
Stores the length of the array in * vallen . */
Stores the length of the array in * vallen . */
extern char * leveldb_get (
leveldb_t * db ,
const leveldb_readoptions_t * options ,
const char * key , size_t keylen ,
size_t * vallen ,
char * * errptr ) ;
LEVELDB_EXPORT char * leveldb_get ( leveldb_t * db ,
const leveldb_readoptions_t * options ,
const char * key , size_t keylen , size_t * vallen ,
char * * errptr ) ;
extern leveldb_iterator_t * leveldb_create_iterator (
leveldb_t * db ,
const leveldb_readoptions_t * options ) ;
LEVELDB_EXPORT leveldb_iterator_t * leveldb_create_iterator (
leveldb_t * db , const leveldb_readoptions_t * options ) ;
extern const leveldb_snapshot_t * leveldb_create_snapshot (
leveldb_t * db ) ;
LEVELDB_EXPORT const leveldb_snapshot_t * leveldb_create_snapshot ( leveldb_t * db ) ;
extern void leveldb_release_snapshot (
leveldb_t * db ,
const leveldb_snapshot_t * snapshot ) ;
LEVELDB_EXPORT void leveldb_release_snapshot (
leveldb_t * db , const leveldb_snapshot_t * snapshot ) ;
/* Returns NULL if property name is unknown.
/* Returns NULL if property name is unknown.
Else returns a pointer to a malloc ( ) - ed null - terminated value . */
Else returns a pointer to a malloc ( ) - ed null - terminated value . */
extern char * leveldb_property_value (
leveldb_t * db ,
const char * propname ) ;
extern void leveldb_approximate_sizes (
leveldb_t * db ,
int num_ranges ,
const char * const * range_start_key , const size_t * range_start_key_len ,
const char * const * range_limit_key , const size_t * range_limit_key_len ,
uint64_t * sizes ) ;
extern void leveldb_compact_range (
leveldb_t * db ,
const char * start_key , size_t start_key_len ,
const char * limit_key , size_t limit_key_len ) ;
LEVELDB_EXPORT char * leveldb_property_value ( leveldb_t * db ,
const char * propname ) ;
LEVELDB_EXPORT void leveldb_approximate_sizes (
leveldb_t * db , int num_ranges , const char * const * range_start_key ,
const size_t * range_start_key_len , const char * const * range_limit_key ,
const size_t * range_limit_key_len , uint64_t * sizes ) ;
LEVELDB_EXPORT void leveldb_compact_range ( leveldb_t * db , const char * start_key ,
size_t start_key_len ,
const char * limit_key ,
size_t limit_key_len ) ;
/* Management operations */
/* Management operations */
extern void leveldb_destroy_db (
const leveldb_options_t * options ,
const char * name ,
char * * errptr ) ;
LEVELDB_EXPORT void leveldb_destroy_db ( const leveldb_options_t * options ,
const char * name , char * * errptr ) ;
extern void leveldb_repair_db (
const leveldb_options_t * options ,
const char * name ,
char * * errptr ) ;
LEVELDB_EXPORT void leveldb_repair_db ( const leveldb_options_t * options ,
const char * name , char * * errptr ) ;
/* Iterator */
/* Iterator */
extern void leveldb_iter_destroy ( leveldb_iterator_t * ) ;
extern unsigned char leveldb_iter_valid ( const leveldb_iterator_t * ) ;
extern void leveldb_iter_seek_to_first ( leveldb_iterator_t * ) ;
extern void leveldb_iter_seek_to_last ( leveldb_iterator_t * ) ;
extern void leveldb_iter_seek ( leveldb_iterator_t * , const char * k , size_t klen ) ;
extern void leveldb_iter_next ( leveldb_iterator_t * ) ;
extern void leveldb_iter_prev ( leveldb_iterator_t * ) ;
extern const char * leveldb_iter_key ( const leveldb_iterator_t * , size_t * klen ) ;
extern const char * leveldb_iter_value ( const leveldb_iterator_t * , size_t * vlen ) ;
extern void leveldb_iter_get_error ( const leveldb_iterator_t * , char * * errptr ) ;
LEVELDB_EXPORT void leveldb_iter_destroy ( leveldb_iterator_t * ) ;
LEVELDB_EXPORT unsigned char leveldb_iter_valid ( const leveldb_iterator_t * ) ;
LEVELDB_EXPORT void leveldb_iter_seek_to_first ( leveldb_iterator_t * ) ;
LEVELDB_EXPORT void leveldb_iter_seek_to_last ( leveldb_iterator_t * ) ;
LEVELDB_EXPORT void leveldb_iter_seek ( leveldb_iterator_t * , const char * k ,
size_t klen ) ;
LEVELDB_EXPORT void leveldb_iter_next ( leveldb_iterator_t * ) ;
LEVELDB_EXPORT void leveldb_iter_prev ( leveldb_iterator_t * ) ;
LEVELDB_EXPORT const char * leveldb_iter_key ( const leveldb_iterator_t * ,
size_t * klen ) ;
LEVELDB_EXPORT const char * leveldb_iter_value ( const leveldb_iterator_t * ,
size_t * vlen ) ;
LEVELDB_EXPORT void leveldb_iter_get_error ( const leveldb_iterator_t * ,
char * * errptr ) ;
/* Write batch */
/* Write batch */
extern leveldb_writebatch_t * leveldb_writebatch_create ( ) ;
extern void leveldb_writebatch_destroy ( leveldb_writebatch_t * ) ;
extern void leveldb_writebatch_clear ( leveldb_writebatch_t * ) ;
extern void leveldb_writebatch_put (
leveldb_writebatch_t * ,
const char * key , size_t klen ,
const char * val , size_t vlen ) ;
extern void leveldb_writebatch_delete (
leveldb_writebatch_t * ,
const char * key , size_t klen ) ;
extern void leveldb_writebatch_iterate (
leveldb_writebatch_t * ,
void * state ,
LEVELDB_EXPORT leveldb_writebatch_t * leveldb_writebatch_create ( ) ;
LEVELDB_EXPORT void leveldb_writebatch_destroy ( leveldb_writebatch_t * ) ;
LEVELDB_EXPORT void leveldb_writebatch_clear ( leveldb_writebatch_t * ) ;
LEVELDB_EXPORT void leveldb_writebatch_put ( leveldb_writebatch_t * ,
const char * key , size_t klen ,
const char * val , size_t vlen ) ;
LEVELDB_EXPORT void leveldb_writebatch_delete ( leveldb_writebatch_t * ,
const char * key , size_t klen ) ;
LEVELDB_EXPORT void leveldb_writebatch_iterate (
leveldb_writebatch_t * , void * state ,
void ( * put ) ( void * , const char * k , size_t klen , const char * v , size_t vlen ) ,
void ( * put ) ( void * , const char * k , size_t klen , const char * v , size_t vlen ) ,
void ( * deleted ) ( void * , const char * k , size_t klen ) ) ;
void ( * deleted ) ( void * , const char * k , size_t klen ) ) ;
/* Options */
/* Options */
extern leveldb_options_t * leveldb_options_create ( ) ;
extern void leveldb_options_destroy ( leveldb_options_t * ) ;
extern void leveldb_options_set_comparator (
leveldb_options_t * ,
leveldb_comparator_t * ) ;
extern void leveldb_options_set_filter_policy (
leveldb_options_t * ,
leveldb_filterpolicy_t * ) ;
extern void leveldb_options_set_create_if_missing (
leveldb_options_t * , unsigned char ) ;
extern void leveldb_options_set_error_if_exists (
leveldb_options_t * , unsigned char ) ;
extern void leveldb_options_set_paranoid_checks (
leveldb_options_t * , unsigned char ) ;
extern void leveldb_options_set_env ( leveldb_options_t * , leveldb_env_t * ) ;
extern void leveldb_options_set_info_log ( leveldb_options_t * , leveldb_logger_t * ) ;
extern void leveldb_options_set_write_buffer_size ( leveldb_options_t * , size_t ) ;
extern void leveldb_options_set_max_open_files ( leveldb_options_t * , int ) ;
extern void leveldb_options_set_cache ( leveldb_options_t * , leveldb_cache_t * ) ;
extern void leveldb_options_set_block_size ( leveldb_options_t * , size_t ) ;
extern void leveldb_options_set_block_restart_interval ( leveldb_options_t * , int ) ;
LEVELDB_EXPORT leveldb_options_t * leveldb_options_create ( ) ;
LEVELDB_EXPORT void leveldb_options_destroy ( leveldb_options_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_comparator ( leveldb_options_t * ,
leveldb_comparator_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_filter_policy ( leveldb_options_t * ,
leveldb_filterpolicy_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_create_if_missing ( leveldb_options_t * ,
unsigned char ) ;
LEVELDB_EXPORT void leveldb_options_set_error_if_exists ( leveldb_options_t * ,
unsigned char ) ;
LEVELDB_EXPORT void leveldb_options_set_paranoid_checks ( leveldb_options_t * ,
unsigned char ) ;
LEVELDB_EXPORT void leveldb_options_set_env ( leveldb_options_t * , leveldb_env_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_info_log ( leveldb_options_t * ,
leveldb_logger_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_write_buffer_size ( leveldb_options_t * ,
size_t ) ;
LEVELDB_EXPORT void leveldb_options_set_max_open_files ( leveldb_options_t * , int ) ;
LEVELDB_EXPORT void leveldb_options_set_cache ( leveldb_options_t * ,
leveldb_cache_t * ) ;
LEVELDB_EXPORT void leveldb_options_set_block_size ( leveldb_options_t * , size_t ) ;
LEVELDB_EXPORT void leveldb_options_set_block_restart_interval (
leveldb_options_t * , int ) ;
enum {
enum {
leveldb_no_compression = 0 ,
leveldb_no_compression = 0 ,
leveldb_snappy_compression = 1
leveldb_snappy_compression = 1
} ;
} ;
extern void leveldb_options_set_compression ( leveldb_options_t * , int ) ;
LEVELDB_EXPORT void leveldb_options_set_compression ( leveldb_options_t * , int ) ;
/* Comparator */
/* Comparator */
extern leveldb_comparator_t * leveldb_comparator_create (
void * state ,
void ( * destructor ) ( void * ) ,
int ( * compare ) (
void * ,
const char * a , size_t alen ,
const char * b , size_t blen ) ,
LEVELDB_EXPORT leveldb_comparator_t * leveldb_comparator_create (
void * state , void ( * destructor ) ( void * ) ,
int ( * compare ) ( void * , const char * a , size_t alen , const char * b ,
size_t blen ) ,
const char * ( * name ) ( void * ) ) ;
const char * ( * name ) ( void * ) ) ;
extern void leveldb_comparator_destroy ( leveldb_comparator_t * ) ;
LEVELDB_EXPORT void leveldb_comparator_destroy ( leveldb_comparator_t * ) ;
/* Filter policy */
/* Filter policy */
extern leveldb_filterpolicy_t * leveldb_filterpolicy_create (
void * state ,
void ( * destructor ) ( void * ) ,
char * ( * create_filter ) (
void * ,
const char * const * key_array , const size_t * key_length_array ,
int num_keys ,
size_t * filter_length ) ,
unsigned char ( * key_may_match ) (
void * ,
const char * key , size_t length ,
const char * filter , size_t filter_length ) ,
LEVELDB_EXPORT leveldb_filterpolicy_t * leveldb_filterpolicy_create (
void * state , void ( * destructor ) ( void * ) ,
char * ( * create_filter ) ( void * , const char * const * key_array ,
const size_t * key_length_array , int num_keys ,
size_t * filter_length ) ,
unsigned char ( * key_may_match ) ( void * , const char * key , size_t length ,
const char * filter , size_t filter_length ) ,
const char * ( * name ) ( void * ) ) ;
const char * ( * name ) ( void * ) ) ;
extern void leveldb_filterpolicy_destroy ( leveldb_filterpolicy_t * ) ;
LEVELDB_EXPORT void leveldb_filterpolicy_destroy ( leveldb_filterpolicy_t * ) ;
extern leveldb_filterpolicy_t * leveldb_filterpolicy_create_bloom (
LEVELDB_EXPORT leveldb_filterpolicy_t * leveldb_filterpolicy_create_bloom (
int bits_per_key ) ;
int bits_per_key ) ;
/* Read options */
/* Read options */
extern leveldb_readoptions_t * leveldb_readoptions_create ( ) ;
extern void leveldb_readoptions_destroy ( leveldb_readoptions_t * ) ;
extern void leveldb_readoptions_set_verify_checksums (
leveldb_readoptions_t * ,
unsigned char ) ;
extern void leveldb_readoptions_set_fill_cache (
LEVELDB_EXPORT leveldb_readoptions_t * leveldb_readoptions_create ( ) ;
LEVELDB_EXPORT void leveldb_readoptions_destroy ( leveldb_readoptions_t * ) ;
LEVELDB_EXPORT void leveldb_readoptions_set_verify_checksums (
leveldb_readoptions_t * , unsigned char ) ;
leveldb_readoptions_t * , unsigned char ) ;
extern void leveldb_readoptions_set_snapshot (
leveldb_readoptions_t * ,
const leveldb_snapshot_t * ) ;
LEVELDB_EXPORT void leveldb_readoptions_set_fill_cache ( leveldb_readoptions_t * ,
unsigned char ) ;
LEVELDB_EXPORT void leveldb_readoptions_set_snapshot ( leveldb_readoptions_t * ,
const leveldb_snapshot_t * ) ;
/* Write options */
/* Write options */
extern leveldb_writeoptions_t * leveldb_writeoptions_create ( ) ;
extern void leveldb_writeoptions_destroy ( leveldb_writeoptions_t * ) ;
extern void leveldb_writeoptions_set_sync (
leveldb_writeoptions_t * , unsigned char ) ;
LEVELDB_EXPORT leveldb_writeoptions_t * leveldb_writeoptions_create ( ) ;
LEVELDB_EXPORT void leveldb_writeoptions_destroy ( leveldb_writeoptions_t * ) ;
LEVELDB_EXPORT void leveldb_writeoptions_set_sync ( leveldb_writeoptions_t * ,
unsigned char ) ;
/* Cache */
/* Cache */
extern leveldb_cache_t * leveldb_cache_create_lru ( size_t capacity ) ;
extern void leveldb_cache_destroy ( leveldb_cache_t * cache ) ;
LEVELDB_EXPORT leveldb_cache_t * leveldb_cache_create_lru ( size_t capacity ) ;
LEVELDB_EXPORT void leveldb_cache_destroy ( leveldb_cache_t * cache ) ;
/* Env */
/* Env */
extern leveldb_env_t * leveldb_create_default_env ( ) ;
extern void leveldb_env_destroy ( leveldb_env_t * ) ;
LEVELDB_EXPORT leveldb_env_t * leveldb_create_default_env ( ) ;
LEVELDB_EXPORT void leveldb_env_destroy ( leveldb_env_t * ) ;
/* Utility */
/* Utility */
@ -275,13 +250,13 @@ extern void leveldb_env_destroy(leveldb_env_t*);
in this file . Note that in certain cases ( typically on Windows ) , you
in this file . Note that in certain cases ( typically on Windows ) , you
may need to call this routine instead of free ( ptr ) to dispose of
may need to call this routine instead of free ( ptr ) to dispose of
malloc ( ) - ed memory returned by this library . */
malloc ( ) - ed memory returned by this library . */
extern void leveldb_free ( void * ptr ) ;
LEVELDB_EXPORT void leveldb_free ( void * ptr ) ;
/* Return the major version number for this release. */
/* Return the major version number for this release. */
extern int leveldb_major_version ( ) ;
LEVELDB_EXPORT int leveldb_major_version ( ) ;
/* Return the minor version number for this release. */
/* Return the minor version number for this release. */
extern int leveldb_minor_version ( ) ;
LEVELDB_EXPORT int leveldb_minor_version ( ) ;
# ifdef __cplusplus
# ifdef __cplusplus
} /* end extern "C" */
} /* end extern "C" */