This commit is contained in:
Jaremy Creechley 2023-08-28 21:56:29 -07:00 committed by Dmitriy Ryajov
parent 51683be0e5
commit 03830cef8f
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4
3 changed files with 14 additions and 55 deletions

View File

@ -17,12 +17,11 @@ import ./fsds
import pretty import pretty
export key, query, ThreadBackend export key, query
push: {.upraises: [].} push: {.upraises: [].}
type type
SharedDatastore* = ref object of Datastore SharedDatastore* = ref object of Datastore
# stores*: Table[Key, SharedDatastore] # stores*: Table[Key, SharedDatastore]
tds: ThreadDatastorePtr tds: ThreadDatastorePtr

View File

@ -31,38 +31,12 @@ type
TResult*[T] = SharedPtr[ThreadResult[T]] TResult*[T] = SharedPtr[ThreadResult[T]]
ThreadBackendKind* {.pure.} = enum
NoBackend
TestBackend
FSBackend
SQliteBackend
ThreadBackend* = object
case kind*: ThreadBackendKind
of FSBackend:
root*: StringBuffer
depth*: int
caseSensitive*: bool
ignoreProtected*: bool
of SQliteBackend:
discard
of TestBackend:
count*: int
of NoBackend:
discard
ThreadDatastore* = object ThreadDatastore* = object
tp*: Taskpool tp*: Taskpool
backend*: ThreadBackendKind
ds*: Datastore ds*: Datastore
ThreadDatastorePtr* = SharedPtr[ThreadDatastore] ThreadDatastorePtr* = SharedPtr[ThreadDatastore]
Test* = object
count*: ThreadBackendKind
TestPtr* = SharedPtr[Test]
proc newThreadResult*[T]( proc newThreadResult*[T](
tp: typedesc[T] tp: typedesc[T]
): Result[TResult[T], ref CatchableError] = ): Result[TResult[T], ref CatchableError] =
@ -76,7 +50,6 @@ proc newThreadResult*[T](
proc getTask*( proc getTask*(
ret: TResult[DataBuffer], ret: TResult[DataBuffer],
backend: ThreadBackendKind,
key: KeyBuffer, key: KeyBuffer,
) = ) =
# return ok(DataBuffer.new()) # return ok(DataBuffer.new())
@ -98,13 +71,12 @@ proc get*(
let bkey = StringBuffer.new(key.id()) let bkey = StringBuffer.new(key.id())
print "bkey: ", bkey print "bkey: ", bkey
tds[].tp.spawn getTask(ret, tds[].backend, bkey) tds[].tp.spawn getTask(ret, bkey)
import os import os
proc putTask*( proc putTask*(
ret: TResult[void], ret: TResult[void],
backend: ThreadBackendKind,
key: KeyBuffer, key: KeyBuffer,
data: DataBuffer, data: DataBuffer,
) = ) =
@ -127,4 +99,4 @@ proc put*(
print "bkey: ", bkey print "bkey: ", bkey
print "bval: ", bval print "bval: ", bval
tds[].tp.spawn putTask(ret, tds[].backend, bkey, bval) tds[].tp.spawn putTask(ret, bkey, bval)

View File

@ -22,9 +22,6 @@ suite "Test Basic SharedDatastore":
var sds: SharedDatastore var sds: SharedDatastore
let backend = ThreadBackend(
kind: TestBackend,
)
let mem = MemoryDatastore.new() let mem = MemoryDatastore.new()
let res = await newSharedDataStore(mem) let res = await newSharedDataStore(mem)
check res.isOk() check res.isOk()
@ -50,30 +47,21 @@ suite "Test Basic SharedDatastore":
res3.cancel() res3.cancel()
# print "res3: ", res3 # print "res3: ", res3
# suite "Test Basic FSDatastore": suite "Test Basic FSDatastore":
# let
# path = currentSourcePath() # get this file's name
# basePath = "tests_data"
# basePathAbs = path.parentDir / basePath
# key = Key.init("/a/b").tryGet()
# bytes = "some bytes".toBytes
# otherBytes = "some other bytes".toBytes
# var var
# fsStore: FSDatastore memStore: MemoryDatastore
key = Key.init("/a/b").tryGet()
bytes = "some bytes".toBytes
otherBytes = "some other bytes".toBytes
# setupAll: setupAll:
# removeDir(basePathAbs) memStore = MemoryDatastore.new()
# require(not dirExists(basePathAbs))
# createDir(basePathAbs)
# fsStore = FSDatastore.new(root = basePathAbs, depth = 3).tryGet() teardownAll:
(await memStore.close()).get()
# teardownAll: basicStoreTests(memStore, key, bytes, otherBytes)
# removeDir(basePathAbs)
# require(not dirExists(basePathAbs))
# basicStoreTests(fsStore, key, bytes, otherBytes)
# suite "Test Misc FSDatastore": # suite "Test Misc FSDatastore":
# let # let