logos-delivery/waku/messaging_client.nim
Fabiana Cecin 5538df0ff9
Fix lint
2026-05-29 13:13:14 -03:00

30 lines
868 B
Nim

import results, chronos
import ./node/waku_node, ./node/delivery_service/[recv_service, send_service]
type MessagingClient* = ref object
sendService*: SendService
recvService*: RecvService
started: bool
proc new*(
T: type MessagingClient, useP2PReliability: bool, node: WakuNode
): Result[T, string] =
let sendService = ?SendService.new(useP2PReliability, node)
let recvService = RecvService.new(node)
ok(T(sendService: sendService, recvService: recvService))
proc start*(self: MessagingClient): Result[void, string] =
if self.started:
return ok()
self.recvService.startRecvService()
self.sendService.startSendService()
self.started = true
ok()
proc stop*(self: MessagingClient) {.async.} =
if not self.started:
return
await self.sendService.stopSendService()
await self.recvService.stopRecvService()
self.started = false