From ec86afebe0e60a3c7e7d19027bb71b22fe7270a0 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Tue, 27 Aug 2019 15:46:12 -0600 Subject: [PATCH] modeling the switch --- libp2p/switch.nim | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 libp2p/switch.nim diff --git a/libp2p/switch.nim b/libp2p/switch.nim new file mode 100644 index 000000000..a839dcd1d --- /dev/null +++ b/libp2p/switch.nim @@ -0,0 +1,32 @@ +## Nim-LibP2P +## Copyright (c) 2018 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. + +import chronos +import connection, transport, stream, peerinfo, multiaddress + +type + ProtoHandler* = proc (conn: Connection, proto: string): Future[void] + ProtoHolder* = object of RootObj + proto: string + handler: ProtoHandler + + Switch* = ref object of RootObj + connections*: seq[Connection] + transport*: seq[Transport] + peerInfo*: PeerInfo + protos: seq[ProtoHolder] + +proc newSwitch*(): Switch = + new result + +proc dial*(peer: PeerInfo, proto: string = "") {.async.} = discard +proc mount*(proto: string, handler: ProtoHandler) {.async.} = discard + +proc start*() {.async.} = discard +proc stop*() {.async.} = discard