37 lines
740 B
JavaScript
37 lines
740 B
JavaScript
'use strict'
|
|
|
|
const { AbstractChainedBatch } = require('abstract-level')
|
|
const binding = require('./binding')
|
|
|
|
const kContext = Symbol('context')
|
|
|
|
class ChainedBatch extends AbstractChainedBatch {
|
|
constructor (db, context) {
|
|
super(db)
|
|
this[kContext] = binding.batch_init(context)
|
|
}
|
|
|
|
_put (key, value) {
|
|
binding.batch_put(this[kContext], key, value)
|
|
}
|
|
|
|
_del (key) {
|
|
binding.batch_del(this[kContext], key)
|
|
}
|
|
|
|
_clear () {
|
|
binding.batch_clear(this[kContext])
|
|
}
|
|
|
|
_write (options, callback) {
|
|
binding.batch_write(this[kContext], options, callback)
|
|
}
|
|
|
|
_close (callback) {
|
|
// TODO: close native batch (currently done on GC)
|
|
process.nextTick(callback)
|
|
}
|
|
}
|
|
|
|
exports.ChainedBatch = ChainedBatch
|