40 lines
		
	
	
		
			633 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			633 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package goleveldb
 | |
| 
 | |
| import (
 | |
| 	"github.com/syndtr/goleveldb/leveldb"
 | |
| )
 | |
| 
 | |
| type WriteBatch struct {
 | |
| 	db     *DB
 | |
| 	wbatch *leveldb.Batch
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Put(key, value []byte) {
 | |
| 	w.wbatch.Put(key, value)
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Delete(key []byte) {
 | |
| 	w.wbatch.Delete(key)
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Commit() error {
 | |
| 	return w.db.db.Write(w.wbatch, nil)
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) SyncCommit() error {
 | |
| 	return w.db.db.Write(w.wbatch, w.db.syncOpts)
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Rollback() error {
 | |
| 	w.wbatch.Reset()
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Close() {
 | |
| 	w.wbatch.Reset()
 | |
| }
 | |
| 
 | |
| func (w *WriteBatch) Data() []byte {
 | |
| 	return w.wbatch.Dump()
 | |
| }
 |