mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-07-09 09:49:26 +00:00
* squash original commits and rebase to master: removed sendHandler and replaced by MessagingSend BrokerRequest * Needed to adapt to new messaging source structure to avoid cyclic imports * Relocate MessagingSend request broker and eliminate api/requests * fix ci fails
19 lines
753 B
Nim
19 lines
753 B
Nim
import chronos, results
|
|
import brokers/[request_broker, broker_context]
|
|
import logos_delivery/api/types as api_types
|
|
|
|
export api_types, request_broker, broker_context
|
|
|
|
# Structural API contract for a messaging client (ops in `messaging/api/*`).
|
|
type MessagingApi* = concept c
|
|
subscribe(c, contentTopic = ContentTopic) is Future[Result[void, string]]
|
|
unsubscribe(c, contentTopic = ContentTopic) is Result[void, string]
|
|
send(c, envelope = MessageEnvelope) is Future[Result[RequestId, string]]
|
|
|
|
# Semi detached MessagingClient send interface.
|
|
# Can be used without MessagingClient, under the same context of MessagingClient instance.
|
|
RequestBroker:
|
|
proc MessagingSend(
|
|
envelope: MessageEnvelope
|
|
): Future[Result[RequestId, string]] {.async.}
|