本文整理汇总了Golang中C.MDB_dbi函数的典型用法代码示例。如果您正苦于以下问题:Golang MDB_dbi函数的具体用法?Golang MDB_dbi怎么用?Golang MDB_dbi使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MDB_dbi函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Del
func (txn *Txn) Del(dbi DBI, key, val []byte) error {
ckey := Wrap(key)
if val == nil {
ret := C.mdb_del(txn._txn, C.MDB_dbi(dbi), (*C.MDB_val)(&ckey), nil)
return errno(ret)
}
cval := Wrap(val)
ret := C.mdb_del(txn._txn, C.MDB_dbi(dbi), (*C.MDB_val)(&ckey), (*C.MDB_val)(&cval))
return errno(ret)
}
示例2: SetMaxDBs
// SetMaxDBs sets the maximum number of named databases for the environment.
//
// See mdb_env_set_maxdbs.
func (env *Env) SetMaxDBs(size int) error {
if size < 0 {
return errNegSize
}
ret := C.mdb_env_set_maxdbs(env._env, C.MDB_dbi(size))
return operrno("mdb_env_set_maxdbs", ret)
}
示例3: SetMaxDBs
func (env *Env) SetMaxDBs(size DBI) error {
ret := C.mdb_env_set_maxdbs(env._env, C.MDB_dbi(size))
if ret != SUCCESS {
return Errno(ret)
}
return nil
}
示例4: GetVal
// Do NOT call Free() on the result *Val
func (txn *Txn) GetVal(dbi DBI, key []byte) (*Val, error) {
ckey := Wrap(key)
defer ckey.Free()
var cval Val
ret := C.mdb_get(txn.txn, C.MDB_dbi(dbi), (*C.MDB_val)(ckey), (*C.MDB_val)(&cval))
return &cval, errno(ret)
}
示例5: Drop
func (txn *Txn) Drop(dbi DBI, del int) error {
ret := C.mdb_drop(txn._txn, C.MDB_dbi(dbi), C.int(del))
if ret != SUCCESS {
return Errno(ret)
}
return nil
}
示例6: CursorOpen
func (txn *Txn) CursorOpen(dbi DBI) (*Cursor, error) {
var _cursor *C.MDB_cursor
ret := C.mdb_cursor_open(txn._txn, C.MDB_dbi(dbi), &_cursor)
if ret != SUCCESS {
return nil, Errno(ret)
}
return &Cursor{_cursor}, nil
}
示例7: Put
func (txn *Txn) Put(dbi DBI, key []byte, val []byte, flags uint) error {
ckey := Wrap(key)
cval := Wrap(val)
defer ckey.Free()
defer cval.Free()
ret := C.mdb_put(txn.txn, C.MDB_dbi(dbi), (*C.MDB_val)(ckey), (*C.MDB_val)(cval), C.uint(flags))
return errno(ret)
}
示例8: openCursor
func openCursor(txn *Txn, db DBI) (*Cursor, error) {
c := &Cursor{txn: txn}
ret := C.mdb_cursor_open(txn._txn, C.MDB_dbi(db), &c._c)
if ret != success {
return nil, operrno("mdb_cursor_open", ret)
}
return c, nil
}
示例9: Del
// Del deletes an item from database dbi. Del ignores val unless dbi has the
// DupSort flag.
//
// See mdb_del.
func (txn *Txn) Del(dbi DBI, key, val []byte) error {
kdata, kn := valBytes(key)
vdata, vn := valBytes(val)
ret := C.lmdbgo_mdb_del(
txn._txn, C.MDB_dbi(dbi),
(*C.char)(unsafe.Pointer(&kdata[0])), C.size_t(kn),
(*C.char)(unsafe.Pointer(&vdata[0])), C.size_t(vn),
)
return operrno("mdb_del", ret)
}
示例10: Del
func (txn *Txn) Del(dbi DBI, key, val []byte) error {
ckey := Wrap(key)
defer ckey.Free()
var cval *Val
if val != nil {
cval = Wrap(val)
defer cval.Free()
}
ret := C.mdb_del(txn.txn, C.MDB_dbi(dbi), (*C.MDB_val)(ckey), (*C.MDB_val)(cval))
return errno(ret)
}
示例11: Get
func (txn *Txn) Get(dbi DBI, key []byte) ([]byte, error) {
ckey := &C.MDB_val{mv_size: C.size_t(len(key)),
mv_data: unsafe.Pointer(&key[0])}
var cval *C.MDB_val
ret := C.mdb_get(txn._txn, C.MDB_dbi(dbi), ckey, cval)
if ret != SUCCESS {
return nil, Errno(ret)
}
val := C.GoBytes(cval.mv_data, C.int(cval.mv_size))
return val, nil
}
示例12: Put
func (txn *Txn) Put(dbi DBI, key []byte, val []byte, flags uint) error {
ckey := &C.MDB_val{mv_size: C.size_t(len(key)),
mv_data: unsafe.Pointer(&key[0])}
cval := &C.MDB_val{mv_size: C.size_t(len(val)),
mv_data: unsafe.Pointer(&val[0])}
ret := C.mdb_put(txn._txn, C.MDB_dbi(dbi), ckey, cval, C.uint(flags))
if ret != SUCCESS {
return Errno(ret)
}
return nil
}
示例13: Stat
func (txn *Txn) Stat(dbi DBI) (*Stat, error) {
var _stat C.MDB_stat
ret := C.mdb_stat(txn._txn, C.MDB_dbi(dbi), &_stat)
if ret != SUCCESS {
return nil, Errno(ret)
}
stat := Stat{PSize: uint(_stat.ms_psize),
Depth: uint(_stat.ms_depth),
BranchPages: uint64(_stat.ms_branch_pages),
LeafPages: uint64(_stat.ms_leaf_pages),
OwerflowPages: uint64(_stat.ms_overflow_pages),
Entries: uint64(_stat.ms_entries)}
return &stat, nil
}
示例14: Get
// Get retrieves items from database dbi. If txn.RawRead is true the slice
// returned by Get references a readonly section of memory that must not be
// accessed after txn has terminated.
//
// See mdb_get.
func (txn *Txn) Get(dbi DBI, key []byte) ([]byte, error) {
kdata, kn := valBytes(key)
ret := C.lmdbgo_mdb_get(
txn._txn, C.MDB_dbi(dbi),
(*C.char)(unsafe.Pointer(&kdata[0])), C.size_t(kn),
txn.val,
)
err := operrno("mdb_get", ret)
if err != nil {
*txn.val = C.MDB_val{}
return nil, err
}
b := txn.bytes(txn.val)
*txn.val = C.MDB_val{}
return b, nil
}
示例15: Del
func (txn *Txn) Del(dbi DBI, key, val []byte) error {
ckey := &C.MDB_val{mv_size: C.size_t(len(key)),
mv_data: unsafe.Pointer(&key[0])}
var cval *C.MDB_val
if val == nil {
cval = nil
} else {
cval = &C.MDB_val{mv_size: C.size_t(len(val)),
mv_data: unsafe.Pointer(&val[0])}
}
ret := C.mdb_del(txn._txn, C.MDB_dbi(dbi), ckey, cval)
if ret != SUCCESS {
return Errno(ret)
}
return nil
}