AutoRelay constructor

AutoRelay(
  1. Host host,
  2. Upgrader upgrader, {
  3. AutoRelayConfig? userConfig,
})

Implementation

AutoRelay(this.host, Upgrader upgrader, {AutoRelayConfig? userConfig})
    : config = userConfig ?? AutoRelayConfig(), // Simplistic merge, real one might be deeper
      relayFinder = RelayFinder(host, upgrader, userConfig ?? AutoRelayConfig()),
      metricsTracer = WrappedMetricsTracer(userConfig?.metricsTracer ?? AutoRelayConfig().metricsTracer) {
  // TODO: Address advertising. The Go version modifies host.AddrsFactory.
  // A Dart-idiomatic way would be preferable, perhaps via events or a dedicated service.
  // For now, this aspect is a placeholder.
  // If host is BasicHost, one might try to access and wrap its AddrsFactory,
  // but that breaks abstraction if Host is just an interface.
}