当前位置: 首页>>代码示例>>Golang>>正文


Golang C.rocksdb_get函数代码示例

本文整理汇总了Golang中C.rocksdb_get函数的典型用法代码示例。如果您正苦于以下问题:Golang rocksdb_get函数的具体用法?Golang rocksdb_get怎么用?Golang rocksdb_get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了rocksdb_get函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: Get

// Get returns the value for the given key.
func (r *RocksDB) Get(key Key) ([]byte, error) {
	if len(key) == 0 {
		return nil, emptyKeyError()
	}
	var (
		cValLen C.size_t
		cErr    *C.char
	)

	cVal := C.rocksdb_get(
		r.rdb,
		r.rOpts,
		bytesPointer(key),
		C.size_t(len(key)),
		&cValLen,
		&cErr)

	if cErr != nil {
		return nil, charToErr(cErr)
	}
	if cVal == nil {
		return nil, nil
	}
	defer C.free(unsafe.Pointer(cVal))
	return C.GoBytes(unsafe.Pointer(cVal), C.int(cValLen)), nil
}
开发者ID:GavinHwa,项目名称:cockroach,代码行数:27,代码来源:rocksdb.go

示例2: get

// get returns the value for the given key.
func (r *RocksDB) get(key Key) (Value, error) {
	if len(key) == 0 {
		return Value{}, emptyKeyError()
	}
	var (
		cValLen C.size_t
		cErr    *C.char
	)

	cVal := C.rocksdb_get(
		r.rdb,
		r.rOpts,
		(*C.char)(unsafe.Pointer(&key[0])),
		C.size_t(len(key)),
		&cValLen,
		&cErr)

	if cErr != nil {
		return Value{}, charToErr(cErr)
	}
	if cVal == nil {
		return Value{}, nil
	}
	defer C.free(unsafe.Pointer(cVal))
	return Value{Bytes: C.GoBytes(unsafe.Pointer(cVal), C.int(cValLen))}, nil
}
开发者ID:joshuawatson,项目名称:cockroach,代码行数:27,代码来源:rocksdb.go

示例3: Get

func (db *DB) Get(opt *ReadOptions, rawKey []byte) ([]byte, error) {
	var ck = (*C.char)(unsafe.Pointer(&rawKey[0]))

	var rOpt = db.rOpt
	if opt != nil && opt.rOpt != nil {
		rOpt = opt.rOpt
	}

	var errStr *C.char
	var vallen C.size_t
	var cv = C.rocksdb_get(db.db, rOpt, ck, C.size_t(len(rawKey)), &vallen, &errStr)

	var err error
	if errStr != nil {
		defer C.free(unsafe.Pointer(errStr))
		err = errors.New(C.GoString(errStr))
	}

	if cv != nil {
		defer C.free(unsafe.Pointer(cv))
		return C.GoBytes(unsafe.Pointer(cv), C.int(vallen)), err
	}

	return nil, err
}
开发者ID:tradia,项目名称:gotable,代码行数:25,代码来源:db.go

示例4: Get

// Get returns the data associated with the key from the database.
func (db *DB) Get(opts *ReadOptions, key []byte) (*Slice, error) {
	var cValLen C.size_t
	var cErr *C.char
	cValue := C.rocksdb_get(
		db.c, opts.c, byteToChar(key), C.size_t(len(key)), &cValLen, &cErr)
	if cErr != nil {
		return nil, convertErr(cErr)
	}
	return newSlice(cValue, cValLen), nil
}
开发者ID:daaku,项目名称:gorocksdb,代码行数:11,代码来源:db.go

示例5: Get

// Get returns the data associated with the key from the database.
func (db *DB) Get(opts *ReadOptions, key []byte) (*Slice, error) {
	var (
		cErr    *C.char
		cValLen C.size_t
		cKey    = byteToChar(key)
	)
	cValue := C.rocksdb_get(db.c, opts.c, cKey, C.size_t(len(key)), &cValLen, &cErr)
	if cErr != nil {
		defer C.free(unsafe.Pointer(cErr))
		return nil, errors.New(C.GoString(cErr))
	}
	return NewSlice(cValue, cValLen), nil
}
开发者ID:C0rWin,项目名称:fabric,代码行数:14,代码来源:db.go

示例6: GetBytes

// GetBytes is like Get but returns a copy of the data.
func (db *DB) GetBytes(opts *ReadOptions, key []byte) ([]byte, error) {
	var (
		cErr    *C.char
		cValLen C.size_t
		cKey    = byteToChar(key)
	)
	cValue := C.rocksdb_get(db.c, opts.c, cKey, C.size_t(len(key)), &cValLen, &cErr)
	if cErr != nil {
		defer C.free(unsafe.Pointer(cErr))
		return nil, errors.New(C.GoString(cErr))
	}
	if cValue == nil {
		return nil, nil
	}
	defer C.free(unsafe.Pointer(cValue))
	return C.GoBytes(unsafe.Pointer(cValue), C.int(cValLen)), nil
}
开发者ID:C0rWin,项目名称:fabric,代码行数:18,代码来源:db.go

示例7: getSlice

func (db *DB) getSlice(ro *ReadOptions, key []byte) (driver.ISlice, error) {
	var errStr *C.char
	var vallen C.size_t
	var k *C.char
	if len(key) != 0 {
		k = (*C.char)(unsafe.Pointer(&key[0]))
	}

	value := C.rocksdb_get(
		db.db, ro.Opt, k, C.size_t(len(key)), &vallen, &errStr)

	if errStr != nil {
		return nil, saveError(errStr)
	}

	if value == nil {
		return nil, nil
	}

	return NewCSlice(unsafe.Pointer(value), int(vallen)), nil
}
开发者ID:malloc-fi,项目名称:vantaa,代码行数:21,代码来源:db.go

示例8: get

func (db *DB) get(ro *ReadOptions, key []byte) ([]byte, error) {
	var errStr *C.char
	var vallen C.size_t
	var k *C.char
	if len(key) != 0 {
		k = (*C.char)(unsafe.Pointer(&key[0]))
	}

	value := C.rocksdb_get(
		db.db, ro.Opt, k, C.size_t(len(key)), &vallen, &errStr)

	if errStr != nil {
		return nil, saveError(errStr)
	}

	if value == nil {
		return nil, nil
	}

	defer C.free(unsafe.Pointer(value))
	return C.GoBytes(unsafe.Pointer(value), C.int(vallen)), nil
}
开发者ID:malloc-fi,项目名称:vantaa,代码行数:22,代码来源:db.go


注:本文中的C.rocksdb_get函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。