mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-05-23 18:19:28 +00:00
more changes
This commit is contained in:
parent
a0d60cc9be
commit
972ee22efd
@ -18,9 +18,14 @@ push: {.upraises: [].}
|
|||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
ThreadResultKind* {.pure.} = enum
|
||||||
|
NotReady
|
||||||
|
Success
|
||||||
|
Error
|
||||||
|
|
||||||
ThreadResult*[T: DataBuffer | void] = object
|
ThreadResult*[T: DataBuffer | void] = object
|
||||||
ready*: bool
|
state*: ThreadResultKind
|
||||||
success*: bool
|
signal*: ThreadSignalPtr
|
||||||
val*: T
|
val*: T
|
||||||
err*: CatchableErrorBuffer
|
err*: CatchableErrorBuffer
|
||||||
|
|
||||||
@ -52,7 +57,7 @@ proc new*[T](tp: typedesc[TResult[T]]): TResult[T] =
|
|||||||
proc startupDatastore(
|
proc startupDatastore(
|
||||||
signal: ThreadSignalPtr,
|
signal: ThreadSignalPtr,
|
||||||
backend: ThreadBackend,
|
backend: ThreadBackend,
|
||||||
res: TResult[ThreadDatastorePtr],
|
ret: TResult[ThreadDatastorePtr],
|
||||||
): bool =
|
): bool =
|
||||||
## starts up a FS instance on a give thread
|
## starts up a FS instance on a give thread
|
||||||
case backend.kind:
|
case backend.kind:
|
||||||
@ -67,33 +72,30 @@ proc startupDatastore(
|
|||||||
let tds = newSharedPtr(ThreadDatastore)
|
let tds = newSharedPtr(ThreadDatastore)
|
||||||
tds[].backendDatastore = ds.get()
|
tds[].backendDatastore = ds.get()
|
||||||
|
|
||||||
res[].ready = true
|
ret[].val = tds
|
||||||
res[].success = true
|
ret[].state = Success
|
||||||
res[].val = tds
|
|
||||||
else:
|
else:
|
||||||
res[].ready = true
|
ret[].state = Error
|
||||||
res[].success = false
|
|
||||||
else:
|
else:
|
||||||
discard
|
discard
|
||||||
|
|
||||||
signal.fireSync().get()
|
ret[].signal.fireSync().get()
|
||||||
|
|
||||||
proc get*(
|
proc getTask*(
|
||||||
self: ThreadDatastore,
|
self: ThreadDatastorePtr,
|
||||||
signal: ThreadSignalPtr,
|
|
||||||
key: KeyBuffer
|
|
||||||
): Result[DataBuffer, CatchableErrorBuffer] =
|
|
||||||
|
|
||||||
return ok(DataBuffer.new())
|
|
||||||
|
|
||||||
proc putWorker*(
|
|
||||||
self: ThreadDatastore,
|
|
||||||
signal: ThreadSignalPtr,
|
|
||||||
key: KeyBuffer,
|
key: KeyBuffer,
|
||||||
data: DataBuffer,
|
ret: TResult[DataBuffer]
|
||||||
res: TResult[void]
|
|
||||||
) =
|
) =
|
||||||
|
|
||||||
|
# return ok(DataBuffer.new())
|
||||||
|
discard
|
||||||
|
|
||||||
|
proc putTask*(
|
||||||
|
self: ThreadDatastorePtr,
|
||||||
|
key: KeyBuffer,
|
||||||
|
data: DataBuffer,
|
||||||
|
ret: TResult[void]
|
||||||
|
) =
|
||||||
discard
|
discard
|
||||||
|
|
||||||
# proc close*(
|
# proc close*(
|
||||||
@ -110,7 +112,7 @@ func new*[S: ref Datastore](
|
|||||||
T: typedesc[ThreadDatastore],
|
T: typedesc[ThreadDatastore],
|
||||||
signal: ThreadSignalPtr,
|
signal: ThreadSignalPtr,
|
||||||
backend: ThreadBackend,
|
backend: ThreadBackend,
|
||||||
res: TResult[ThreadDatastore]
|
ret: TResult[ThreadDatastore]
|
||||||
) =
|
) =
|
||||||
|
|
||||||
var self = T()
|
var self = T()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user