mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-06-27 20:10:02 +00:00
34 lines
1.1 KiB
Nim
34 lines
1.1 KiB
Nim
## `LogosDelivery` is the project entry point. It is a pure concentrator: it
|
|
## owns exactly one instance of each API layer
|
|
##
|
|
## Waku <- MessagingClient <- ReliableChannelManager
|
|
##
|
|
## and chains them together (each layer drives the one below it). Every layer
|
|
## keeps its own, separate public API — `LogosDelivery` only wires them up and
|
|
## drives the shared `new` / `start` / `stop` lifecycle.
|
|
|
|
{.push raises: [].}
|
|
|
|
import results, chronos
|
|
import brokers/event_broker
|
|
import types as api_types
|
|
|
|
export api_types, event_broker
|
|
|
|
type
|
|
## Entry point. Holds one instance of each API layer.
|
|
ILogosDelivery* = ref object of RootObj
|
|
|
|
EventBroker:
|
|
type EventConnectionStatusChange* = object
|
|
connectionStatus*: ConnectionStatus
|
|
|
|
method start*(self: ILogosDelivery): Future[Result[void, string]] {.async, base.} =
|
|
return err("ILogosDelivery.start not implemented")
|
|
|
|
method stop*(self: ILogosDelivery): Future[Result[void, string]] {.async, base.} =
|
|
return err("ILogosDelivery.stop not implemented")
|
|
|
|
method isOnline*(self: ILogosDelivery): Future[Result[bool, string]] {.async, base.} =
|
|
return err("ILogosDelivery.isOnline not implemented")
|