2023-08-25 15:46:38 -03:00
|
|
|
import std/options
|
|
|
|
|
|
|
|
|
|
import swarmsim/engine
|
|
|
|
|
import swarmsim/engine/peer
|
|
|
|
|
|
|
|
|
|
import ./inbox
|
|
|
|
|
|
|
|
|
|
type TestPeer* = ref object of Peer
|
|
|
|
|
network: Network
|
|
|
|
|
|
|
|
|
|
proc new*(
|
|
|
|
|
t: typedesc[TestPeer],
|
|
|
|
|
network: Network,
|
|
|
|
|
peerId: Option[int] = none(int),
|
|
|
|
|
): TestPeer =
|
|
|
|
|
let peer: TestPeer = TestPeer(network: network)
|
2023-08-25 17:40:31 -03:00
|
|
|
discard peer.initPeer(
|
|
|
|
|
protocols = @[Protocol Inbox(
|
|
|
|
|
protocolId: Inbox.typeId,
|
|
|
|
|
messageTypes: @["*"]
|
|
|
|
|
)
|
|
|
|
|
])
|
2023-08-25 15:46:38 -03:00
|
|
|
peer
|
|
|
|
|
|
|
|
|
|
proc inbox*(peer: TestPeer): Inbox =
|
2023-08-25 17:40:31 -03:00
|
|
|
Inbox peer.getProtocol(Inbox.typeId).get()
|
2023-08-25 15:46:38 -03:00
|
|
|
|
2023-09-01 19:35:31 -03:00
|
|
|
proc send*(self: TestPeer, msg: var Message): ScheduledEvent =
|
2023-08-25 15:46:38 -03:00
|
|
|
msg.sender = Peer(self).some
|
|
|
|
|
self.network.send(msg)
|