# Nim-LibP2P # Copyright (c) 2023 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. {.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, reuseConnection = true, dir = Direction.Out, ) {.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!")