# Nim-LibP2P # Copyright (c) 2022 Status Research & Development GmbH # Licensed under either of # * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE)) # * MIT license ([LICENSE-MIT](LICENSE-MIT)) # at your option. # This file may not be copied, modified, or distributed except according to # those terms. when (NimMajor, NimMinor) < (1, 4): {.push raises: [Defect].} else: {.push raises: [].} import chronos import stew/results import peerid, stream/connection, transports/transport export results type Dial* = ref object of RootObj method connect*( self: Dial, peerId: PeerId, addrs: seq[MultiAddress], forceDial = false) {.async, base.} = ## connect remote peer without negotiating ## a protocol ## doAssert(false, "Not implemented!") method connect*( self: Dial, address: MultiAddress, allowUnknownPeerId = false): Future[PeerId] {.async, base.} = ## Connects to a peer and retrieve its PeerId doAssert(false, "Not implemented!") method dial*( self: Dial, peerId: PeerId, protos: seq[string], ): Future[Connection] {.async, base.} = ## create a protocol stream over an ## existing connection ## doAssert(false, "Not implemented!") method dial*( self: Dial, peerId: PeerId, addrs: seq[MultiAddress], protos: seq[string], forceDial = false): Future[Connection] {.async, base.} = ## create a protocol stream and establish ## a connection if one doesn't exist already ## doAssert(false, "Not implemented!") method addTransport*( self: Dial, transport: Transport) {.base.} = doAssert(false, "Not implemented!") method tryDial*( self: Dial, peerId: PeerId, addrs: seq[MultiAddress]): Future[Opt[MultiAddress]] {.async, base.} = doAssert(false, "Not implemented!")