示例#1
0
文件: tx.go 项目: eswdd/bosun
func (tx *Tx) GetSlice(key []byte) (Slice, error) {
	if v, err := tx.Get(key); err != nil {
		return nil, err
	} else if v == nil {
		return nil, nil
	} else {
		return driver.GoSlice(v), nil
	}
}
示例#2
0
文件: snapshot.go 项目: eswdd/bosun
func (s *Snapshot) GetSlice(key []byte) (Slice, error) {
	if d, ok := s.ISnapshot.(driver.ISliceGeter); ok {
		v, err := d.GetSlice(key)
		s.st.statGet(v, err)
		return v, err
	} else {
		v, err := s.Get(key)
		if err != nil {
			return nil, err
		} else if v == nil {
			return nil, nil
		} else {
			return driver.GoSlice(v), nil
		}
	}
}
示例#3
0
文件: db.go 项目: eswdd/bosun
func (db *DB) GetSlice(key []byte) (Slice, error) {
	if d, ok := db.db.(driver.ISliceGeter); ok {
		t := time.Now()
		v, err := d.GetSlice(key)
		db.st.statGet(v, err)
		db.st.GetTotalTime.Add(time.Now().Sub(t))
		return v, err
	} else {
		v, err := db.Get(key)
		if err != nil {
			return nil, err
		} else if v == nil {
			return nil, nil
		} else {
			return driver.GoSlice(v), nil
		}
	}
}