mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-23 05:00:21 +00:00
* move MessagingClientConf to api/conf/messaging_conf * move ReliableChannelManagerConf to new api/conf/channels_conf * impl modules now import their conf module, not the reverse * logos_delivery_conf uses channels_conf, not reliable_channel_manager * cleanup import lists
40 lines
1.1 KiB
Nim
40 lines
1.1 KiB
Nim
{.push raises: [].}
|
|
|
|
import std/options
|
|
import results
|
|
|
|
import logos_delivery/api/conf/messaging_conf
|
|
import logos_delivery/api/conf/channels_conf
|
|
|
|
export options, messaging_conf, channels_conf
|
|
|
|
type LogosDeliveryConf* = object
|
|
## Aggregates the per-layer config objects. A layer is mounted iff its config
|
|
## is present.
|
|
kernelConf*: KernelConf
|
|
messagingConf*: Option[MessagingClientConf]
|
|
channelsConf*: Option[ReliableChannelManagerConf]
|
|
|
|
proc init*(T: type LogosDeliveryConf, kernelConf: KernelConf): LogosDeliveryConf =
|
|
return LogosDeliveryConf(kernelConf: kernelConf)
|
|
|
|
proc init*(
|
|
T: type LogosDeliveryConf,
|
|
mode: LogosDeliveryMode,
|
|
preset: string,
|
|
messagingOverrides: MessagingClientConf,
|
|
channelsOverrides: ReliableChannelManagerConf,
|
|
): ConfResult[LogosDeliveryConf] =
|
|
let merged = merge(?resolvePreset(preset), messagingOverrides)
|
|
var kernelConf = ?toWakuNodeConf(merged, mode)
|
|
kernelConf.preset = preset
|
|
return ok(
|
|
LogosDeliveryConf(
|
|
kernelConf: KernelConf(kernelConf),
|
|
messagingConf: some(merged),
|
|
channelsConf: some(channelsOverrides),
|
|
)
|
|
)
|
|
|
|
{.pop.}
|