json_translator: publish and message to initial dataspace
This commit is contained in:
parent
3e5f791d70
commit
d7dd513c97
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## json_translator
|
## json_translator
|
||||||
|
|
||||||
Wrapper that executes a command, parses its JSON output, and sends a Preserves conversion as a message in an `<recv @jsonData any>` record.
|
Wrapper that executes a command, parses its JSON output, converts to Preserves record `<recv @jsonData any>`, and publishes and messages to its initial dataspace.
|
||||||
|
|
||||||
## json_socket_translator
|
## json_socket_translator
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
version 1 .
|
version 1 .
|
||||||
|
|
||||||
JsonTranslatorArguments = {
|
|
||||||
dataspace: #!any
|
|
||||||
}.
|
|
||||||
|
|
||||||
JsonTranslatorConnected = <connected @path string>.
|
JsonTranslatorConnected = <connected @path string>.
|
||||||
|
|
||||||
JsonSocketTranslatorArguments = {
|
JsonSocketTranslatorArguments = {
|
||||||
|
|
|
@ -24,7 +24,8 @@ proc runChild: string =
|
||||||
stderr.writeLine "no ouput"
|
stderr.writeLine "no ouput"
|
||||||
quit 1
|
quit 1
|
||||||
|
|
||||||
runActor("main") do (root: Cap; turn: var Turn):
|
runActor("main") do (ds: Cap; turn: var Turn):
|
||||||
connectStdio(root, turn)
|
connectStdio(ds, turn)
|
||||||
during(turn, root, ?JsonTranslatorArguments) do (ds: Cap):
|
let js = runChild().parseJson()
|
||||||
message(turn, ds, RecvJson(data: runChild().parseJson()))
|
message(turn, ds, RecvJson(data: js))
|
||||||
|
discard publish(turn, ds, RecvJson(data: js))
|
||||||
|
|
|
@ -3,9 +3,6 @@ import
|
||||||
preserves
|
preserves
|
||||||
|
|
||||||
type
|
type
|
||||||
JsonTranslatorArguments* {.preservesDictionary.} = object
|
|
||||||
`dataspace`* {.preservesEmbedded.}: Preserve[void]
|
|
||||||
|
|
||||||
JsonTranslatorConnected* {.preservesRecord: "connected".} = object
|
JsonTranslatorConnected* {.preservesRecord: "connected".} = object
|
||||||
`path`*: string
|
`path`*: string
|
||||||
|
|
||||||
|
@ -13,10 +10,9 @@ type
|
||||||
`dataspace`* {.preservesEmbedded.}: Preserve[void]
|
`dataspace`* {.preservesEmbedded.}: Preserve[void]
|
||||||
`socket`*: string
|
`socket`*: string
|
||||||
|
|
||||||
proc `$`*(x: JsonTranslatorArguments | JsonTranslatorConnected |
|
proc `$`*(x: JsonTranslatorConnected | JsonSocketTranslatorArguments): string =
|
||||||
JsonSocketTranslatorArguments): string =
|
|
||||||
`$`(toPreserve(x))
|
`$`(toPreserve(x))
|
||||||
|
|
||||||
proc encode*(x: JsonTranslatorArguments | JsonTranslatorConnected |
|
proc encode*(x: JsonTranslatorConnected | JsonSocketTranslatorArguments): seq[
|
||||||
JsonSocketTranslatorArguments): seq[byte] =
|
byte] =
|
||||||
encode(toPreserve(x))
|
encode(toPreserve(x))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "20230825"
|
version = "20230905"
|
||||||
author = "Emery Hemingway"
|
author = "Emery Hemingway"
|
||||||
description = "Utilites for Syndicated Actors and Synit"
|
description = "Utilites for Syndicated Actors and Synit"
|
||||||
license = "unlicense"
|
license = "unlicense"
|
||||||
|
|
Loading…
Reference in New Issue