Ejemplo n.º 1
0
Archivo: tx.go Proyecto: Aurlin/ledisdb
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
	}
}
Ejemplo n.º 2
0
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
		}
	}
}
Ejemplo n.º 3
0
Archivo: db.go Proyecto: rechen/wharf
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
		}
	}
}