本文整理汇总了Golang中C.rocksdb_open函数的典型用法代码示例。如果您正苦于以下问题:Golang rocksdb_open函数的具体用法?Golang rocksdb_open怎么用?Golang rocksdb_open使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rocksdb_open函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Open
func (db *DB) Open(name string, createIfMissing bool, maxOpenFiles int,
writeBufSize int, cacheSize int64, compression int) error {
db.opt = C.rocksdb_options_create()
C.rocksdb_options_set_create_if_missing(db.opt, boolToUchar(createIfMissing))
C.rocksdb_options_set_write_buffer_size(db.opt, C.size_t(writeBufSize))
C.rocksdb_options_set_max_open_files(db.opt, C.int(maxOpenFiles))
C.rocksdb_options_set_compression(db.opt, C.int(compression))
var block_options = C.rocksdb_block_based_options_create()
if cacheSize > 0 {
db.cache = C.rocksdb_cache_create_lru(C.size_t(cacheSize))
C.rocksdb_block_based_options_set_block_cache(block_options, db.cache)
} else {
C.rocksdb_block_based_options_set_no_block_cache(block_options, 1)
}
db.fp = C.rocksdb_filterpolicy_create_bloom(10)
C.rocksdb_block_based_options_set_filter_policy(block_options, db.fp)
C.rocksdb_options_set_block_based_table_factory(db.opt, block_options)
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
var errStr *C.char
db.db = C.rocksdb_open(db.opt, cname, &errStr)
if errStr != nil {
defer C.free(unsafe.Pointer(errStr))
return errors.New(C.GoString(errStr))
}
db.rOpt = C.rocksdb_readoptions_create()
db.wOpt = C.rocksdb_writeoptions_create()
return nil
}
示例2: OpenDB
// OpenDB opens a database with the specified options.
func OpenDB(opts *Options, name string) (*DB, error) {
cName := C.CString(name)
defer C.free(unsafe.Pointer(cName))
var cErr *C.char
db := C.rocksdb_open(opts.c, cName, &cErr)
if cErr != nil {
return nil, convertErr(cErr)
}
return &DB{c: db}, nil
}
示例3: Open
// Open opens a database.
//
// Creating a new database is done by calling SetCreateIfMissing(true) on the
// Options passed to Open.
//
// It is usually wise to set a Cache object on the Options with SetCache to
// keep recently used data from that database in memory.
func Open(dbname string, o *Options) (*DB, error) {
var errStr *C.char
ldbname := C.CString(dbname)
defer C.free(unsafe.Pointer(ldbname))
rocksdb := C.rocksdb_open(o.Opt, ldbname, &errStr)
if errStr != nil {
gs := C.GoString(errStr)
C.free(unsafe.Pointer(errStr))
return nil, DatabaseError(gs)
}
return &DB{rocksdb}, nil
}
示例4: open
func (db *DB) open() error {
db.initOptions(db.cfg)
var errStr *C.char
ldbname := C.CString(db.path)
defer C.free(unsafe.Pointer(ldbname))
db.db = C.rocksdb_open(db.opts.Opt, ldbname, &errStr)
if errStr != nil {
db.db = nil
return saveError(errStr)
}
return nil
}
示例5: OpenDb
// OpenDb opens a database with the specified options.
func OpenDb(opts *Options, name string) (*DB, error) {
var cErr *C.char
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
db := C.rocksdb_open(opts.c, cname, &cErr)
if cErr != nil {
defer C.free(unsafe.Pointer(cErr))
return nil, errors.New(C.GoString(cErr))
}
return &DB{
name: name,
c: db,
opts: opts,
}, nil
}
示例6: Start
// Start creates options and opens the database. If the database
// doesn't yet exist at the specified directory, one is initialized
// from scratch.
func (r *RocksDB) Start() error {
r.createOptions()
cDir := C.CString(r.dir)
defer C.free(unsafe.Pointer(cDir))
var cErr *C.char
if r.rdb = C.rocksdb_open(r.opts, cDir, &cErr); cErr != nil {
r.rdb = nil
r.destroyOptions()
return charToErr(cErr)
}
if _, err := r.Capacity(); err != nil {
if err := r.Destroy(); err != nil {
log.Warningf("could not destroy db at %s", r.dir)
}
return err
}
return nil
}
示例7: NewRocksDB
// NewRocksDB allocates and returns a new RocksDB object.
func NewRocksDB(attrs Attributes, dir string) (*RocksDB, error) {
r := &RocksDB{attrs: attrs, dir: dir}
r.createOptions()
cDir := C.CString(dir)
defer C.free(unsafe.Pointer(cDir))
var cErr *C.char
if r.rdb = C.rocksdb_open(r.opts, cDir, &cErr); cErr != nil {
r.rdb = nil
r.destroyOptions()
return nil, charToErr(cErr)
}
if _, err := r.Capacity(); err != nil {
if err := r.destroy(); err != nil {
glog.Warningf("could not destroy db at %s", dir)
}
return nil, err
}
return r, nil
}
示例8: NewRocksDB
// NewRocksDB allocates and returns a new RocksDB object.
func NewRocksDB(typ DiskType, dir string) (*RocksDB, error) {
r := &RocksDB{typ: typ, dir: dir}
r.createOptions()
cDir := C.CString(dir)
defer C.free(unsafe.Pointer(cDir))
var cErr *C.char
if r.rdb = C.rocksdb_open(r.opts, cDir, &cErr); cErr != nil {
r.rdb = nil
r.destroyOptions()
s := C.GoString(cErr)
C.free(unsafe.Pointer(cErr))
// TODO(andybons): use util.Error.
return nil, errors.New(s)
}
if _, err := r.capacity(); err != nil {
if err := r.destroy(); err != nil {
glog.Warningf("could not destroy db at %s", dir)
}
return nil, err
}
return r, nil
}