From 8b32f10f16f19c0b8985399fafdfe31af29493a1 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 18 Aug 2015 13:42:21 +0200 Subject: ethdb: add NewBatch --- ethdb/memory_database.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'ethdb/memory_database.go') diff --git a/ethdb/memory_database.go b/ethdb/memory_database.go index d50f8f9d4..4fcce1812 100644 --- a/ethdb/memory_database.go +++ b/ethdb/memory_database.go @@ -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 +} -- cgit