ethdb: add NewBatch

This commit is contained in:
Felix Lange
2015-08-18 13:42:21 +02:00
parent 8c4dab77ba
commit 8b32f10f16
3 changed files with 49 additions and 0 deletions

View File

@ -95,3 +95,26 @@ func (db *MemDatabase) LastKnownTD() []byte {
func (db *MemDatabase) Flush() error {
return nil
}
func (db *MemDatabase) NewBatch() Batch {
return &memBatch{db: db}
}
type kv struct{ k, v []byte }
type memBatch struct {
db *MemDatabase
writes []kv
}
func (w *memBatch) Put(key, value []byte) error {
w.writes = append(w.writes, kv{key, common.CopyBytes(value)})
return nil
}
func (w *memBatch) Write() error {
for _, kv := range w.writes {
w.db.db[string(kv.k)] = kv.v
}
return nil
}