24 lines
599 B
Nim
24 lines
599 B
Nim
import ../lib/librocksdb
|
|
|
|
type
|
|
CachePtr* = ptr rocksdb_cache_t
|
|
|
|
CacheRef* = ref object
|
|
cPtr: CachePtr
|
|
autoClose*: bool # if true then close will be called when it's parent is closed
|
|
|
|
proc cacheCreateLRU*(size: int, autoClose = false): CacheRef =
|
|
CacheRef(cPtr: rocksdb_cache_create_lru(size.csize_t), autoClose: autoClose)
|
|
|
|
proc isClosed*(cache: CacheRef): bool =
|
|
isNil(cache.cPtr)
|
|
|
|
proc cPtr*(cache: CacheRef): CachePtr =
|
|
doAssert not cache.isClosed()
|
|
cache.cPtr
|
|
|
|
proc close*(cache: CacheRef) =
|
|
if cache.cPtr != nil:
|
|
rocksdb_cache_destroy(cache.cPtr)
|
|
cache.cPtr = nil
|