コード例 #1
0
ファイル: db.go プロジェクト: daaku/gorocksdb
// OpenDBForReadOnly opens a database with the specified options for readonly usage.
func OpenDBForReadOnly(opts *Options, name string, errorIfLogFileExist bool) (*DB, error) {
	cName := C.CString(name)
	defer C.free(unsafe.Pointer(cName))
	var cErr *C.char
	db := C.rocksdb_open_for_read_only(opts.c, cName, boolToChar(errorIfLogFileExist), &cErr)
	if cErr != nil {
		return nil, convertErr(cErr)
	}
	return &DB{c: db}, nil
}
コード例 #2
0
ファイル: db.go プロジェクト: ma6174/rocksdb
// 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 OpenForRead(dbname string, if_log_exist_err bool, o *Options) (*DB, error) {
	var errStr *C.char
	ldbname := C.CString(dbname)
	defer C.free(unsafe.Pointer(ldbname))
	i := boolToUchar(if_log_exist_err)

	rocksdb := C.rocksdb_open_for_read_only(o.Opt, ldbname, i, &errStr)
	if errStr != nil {
		gs := C.GoString(errStr)
		C.free(unsafe.Pointer(errStr))
		return nil, DatabaseError(gs)
	}
	return &DB{rocksdb}, nil
}
コード例 #3
0
ファイル: db.go プロジェクト: rdallman/gorocksdb
// OpenDbForReadOnly opens a database with the specified options for readonly usage.
func OpenDbForReadOnly(opts *Options, name string, errorIfLogFileExist bool) (*DB, error) {
	var cErr *C.char
	cname := C.CString(name)
	defer C.free(unsafe.Pointer(cname))
	db := C.rocksdb_open_for_read_only(opts.c, cname, boolToChar(errorIfLogFileExist), &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
}