rework moc discovery

This commit is contained in:
Dmitriy Ryajov 2022-04-19 19:22:08 -06:00
parent 6b0e5f95e7
commit 8fafc3edf3
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4

View File

@ -17,9 +17,9 @@ import pkg/libp2pdht/discv5/protocol as discv5
export discv5
type
Discovery* = ref object
findBlockProviders_var*: proc(d: Discovery, cid: Cid): seq[SignedPeerRecord] {.gcsafe.}
publishProvide_var*: proc(d: Discovery, cid: Cid) {.gcsafe.}
MockDiscovery* = ref object of Discovery
findBlockProvidersHandler*: proc(d: MockDiscovery, cid: Cid): seq[SignedPeerRecord] {.gcsafe.}
publishProvideHandler*: proc(d: MockDiscovery, cid: Cid) {.gcsafe.}
proc new*(
T: type Discovery,
@ -38,13 +38,13 @@ proc findPeer*(
proc findBlockProviders*(
d: Discovery,
cid: Cid): Future[seq[SignedPeerRecord]] {.async.} =
if isNil(d.findBlockProviders_var): return
if isNil(d.findBlockProvidersHandler): return
return d.findBlockProviders_var(d, cid)
return d.findBlockProvidersHandler(d, cid)
proc publishProvide*(d: Discovery, cid: Cid) {.async.} =
if isNil(d.publishProvide_var): return
d.publishProvide_var(d, cid)
method provideBlock*(d: MockDiscovery, cid: Cid) {.async.} =
if isNil(d.publishProvideHandler): return
d.publishProvideHandler(d, cid)
proc start*(d: Discovery) {.async.} =