Exposed the LevelDB iterator in the DB struct.
This commit is contained in:
parent
eac3f2bc14
commit
bb8104b624
8
db.go
8
db.go
|
@ -12,6 +12,8 @@ type DB interface {
|
||||||
NewBatch() Batch
|
NewBatch() Batch
|
||||||
|
|
||||||
// For debugging
|
// For debugging
|
||||||
|
Iterator() Iterator
|
||||||
|
Next(Iterator) (key []byte, value []byte)
|
||||||
Print()
|
Print()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +23,12 @@ type Batch interface {
|
||||||
Write()
|
Write()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Iterator interface {
|
||||||
|
Next() bool
|
||||||
|
Key() []byte
|
||||||
|
Value() []byte
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -90,6 +90,15 @@ func (db *GoLevelDB) Print() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *GoLevelDB) Iterator() Iterator {
|
||||||
|
return db.db.NewIterator(nil, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *GoLevelDB) Next(iter Iterator) ([]byte, []byte) {
|
||||||
|
iter.Next()
|
||||||
|
return iter.Key(), iter.Value()
|
||||||
|
}
|
||||||
|
|
||||||
func (db *GoLevelDB) NewBatch() Batch {
|
func (db *GoLevelDB) NewBatch() Batch {
|
||||||
batch := new(leveldb.Batch)
|
batch := new(leveldb.Batch)
|
||||||
return &goLevelDBBatch{db, batch}
|
return &goLevelDBBatch{db, batch}
|
||||||
|
|
10
mem_db.go
10
mem_db.go
|
@ -65,6 +65,16 @@ func (db *MemDB) Print() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: needs to be wired to range db.db
|
||||||
|
func (db *MemDB) Iterator() Iterator {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: needs to be wired to range db.db
|
||||||
|
func (db *MemDB) Next(iter Iterator) (key []byte, value []byte) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (db *MemDB) NewBatch() Batch {
|
func (db *MemDB) NewBatch() Batch {
|
||||||
return &memDBBatch{db, nil}
|
return &memDBBatch{db, nil}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue