mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-07 16:13:07 +00:00
impl has
This commit is contained in:
parent
2cded134dd
commit
9fa6c6e661
@ -50,6 +50,34 @@ proc newThreadResult*[T](
|
|||||||
res[].signal = signal.get()
|
res[].signal = signal.get()
|
||||||
ok res
|
ok res
|
||||||
|
|
||||||
|
proc hasTask*(
|
||||||
|
ret: TResult[bool],
|
||||||
|
tds: ThreadDatastorePtr,
|
||||||
|
kb: KeyBuffer,
|
||||||
|
) =
|
||||||
|
without key =? kb.toKey(), err:
|
||||||
|
ret[].state = Error
|
||||||
|
try:
|
||||||
|
let res = waitFor tds[].ds.has(key)
|
||||||
|
if res.isErr:
|
||||||
|
ret[].state = Error
|
||||||
|
ret[].error = res.error().toBuffer()
|
||||||
|
else:
|
||||||
|
ret[].state = Success
|
||||||
|
ret[].value = res.get()
|
||||||
|
discard ret[].signal.fireSync()
|
||||||
|
except CatchableError as err:
|
||||||
|
ret[].state = Error
|
||||||
|
ret[].error = err.toBuffer()
|
||||||
|
|
||||||
|
proc has*(
|
||||||
|
ret: TResult[bool],
|
||||||
|
tds: ThreadDatastorePtr,
|
||||||
|
key: Key,
|
||||||
|
) =
|
||||||
|
let bkey = StringBuffer.new(key.id())
|
||||||
|
tds[].tp.spawn hasTask(ret, tds, bkey)
|
||||||
|
|
||||||
proc getTask*(
|
proc getTask*(
|
||||||
ret: TResult[DataBuffer],
|
ret: TResult[DataBuffer],
|
||||||
tds: ThreadDatastorePtr,
|
tds: ThreadDatastorePtr,
|
||||||
@ -72,7 +100,6 @@ proc getTask*(
|
|||||||
ret[].state = Error
|
ret[].state = Error
|
||||||
ret[].error = err.toBuffer()
|
ret[].error = err.toBuffer()
|
||||||
|
|
||||||
|
|
||||||
proc get*(
|
proc get*(
|
||||||
ret: TResult[DataBuffer],
|
ret: TResult[DataBuffer],
|
||||||
tds: ThreadDatastorePtr,
|
tds: ThreadDatastorePtr,
|
||||||
@ -103,7 +130,6 @@ proc putTask*(
|
|||||||
|
|
||||||
discard ret[].signal.fireSync()
|
discard ret[].signal.fireSync()
|
||||||
|
|
||||||
|
|
||||||
proc put*(
|
proc put*(
|
||||||
ret: TResult[void],
|
ret: TResult[void],
|
||||||
tds: ThreadDatastorePtr,
|
tds: ThreadDatastorePtr,
|
||||||
@ -118,6 +144,7 @@ proc put*(
|
|||||||
|
|
||||||
tds[].tp.spawn putTask(ret, tds, bkey, bval)
|
tds[].tp.spawn putTask(ret, tds, bkey, bval)
|
||||||
|
|
||||||
|
|
||||||
proc deleteTask*(
|
proc deleteTask*(
|
||||||
ret: TResult[void],
|
ret: TResult[void],
|
||||||
tds: ThreadDatastorePtr,
|
tds: ThreadDatastorePtr,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user