result types

This commit is contained in:
Jaremy Creechley 2023-09-26 17:32:10 -07:00
parent 1aec1a460d
commit d0ee284d90
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
2 changed files with 21 additions and 20 deletions

View File

@ -162,6 +162,7 @@ proc deleteTask[T, DB](ctx: TaskCtx[T], ds: DB;
method delete*(self: ThreadDatastore,
key: Key): Future[?!void] {.async.} =
## delete key
await self.semaphore.acquire()
without signal =? acquireSignal(), err:
return failure err
@ -174,7 +175,7 @@ method delete*(self: ThreadDatastore,
method delete*(self: ThreadDatastore,
keys: seq[Key]): Future[?!void] {.async.} =
## delete batch
for key in keys:
if err =? (await self.delete(key)).errorOption:
return failure err
@ -185,13 +186,13 @@ method delete*(self: ThreadDatastore,
proc putTask[T, DB](ctx: TaskCtx[T], ds: DB;
key: KeyId,
data: DataBuffer) {.gcsafe, nimcall.} =
## run backend command
executeTask(ctx):
put(ds, key, data)
method put*(self: ThreadDatastore,
key: Key,
data: seq[byte]): Future[?!void] {.async.} =
## put key with data
await self.semaphore.acquire()
without signal =? acquireSignal(), err:
return failure err
@ -206,7 +207,7 @@ method put*(self: ThreadDatastore,
method put*(
self: ThreadDatastore,
batch: seq[BatchEntry]): Future[?!void] {.async.} =
## put batch data
for entry in batch:
if err =? (await self.put(entry.key, entry.data)).errorOption:
return failure err

View File

@ -82,28 +82,28 @@ suite "Test Basic ThreadDatastore with SQLite":
basicStoreTests(ds, key, bytes, otherBytes)
# suite "Test Query ThreadDatastore with SQLite":
suite "Test Query ThreadDatastore with SQLite":
# var
# sqlStore: SQLiteBackend[KeyId,DataBuffer]
# ds: ThreadDatastore
# taskPool: Taskpool
# key = Key.init("/a/b").tryGet()
# bytes = "some bytes".toBytes
# otherBytes = "some other bytes".toBytes
var
sqlStore: SQLiteBackend[KeyId,DataBuffer]
ds: ThreadDatastore
taskPool: Taskpool
key = Key.init("/a/b").tryGet()
bytes = "some bytes".toBytes
otherBytes = "some other bytes".toBytes
# setup:
# sqlStore = newSQLiteBackend[KeyId, DataBuffer](Memory).tryGet()
# taskPool = Taskpool.new(NumThreads)
# ds = ThreadDatastore.new(sqlStore, tp = taskPool).tryGet()
setup:
sqlStore = newSQLiteBackend[KeyId, DataBuffer](Memory).tryGet()
taskPool = Taskpool.new(NumThreads)
ds = ThreadDatastore.new(sqlStore, tp = taskPool).tryGet()
# teardown:
# GC_fullCollect()
teardown:
GC_fullCollect()
# (await ds.close()).tryGet()
# taskPool.shutdown()
(await ds.close()).tryGet()
taskPool.shutdown()
# queryTests(ds, true)
queryTests(ds, true)
# suite "Test Basic ThreadDatastore with fsds":
# let