summaryrefslogtreecommitdiff
path: root/src/Erebos/Network
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Network')
-rw-r--r--src/Erebos/Network/Protocol.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Erebos/Network/Protocol.hs b/src/Erebos/Network/Protocol.hs
index 463bf40..34f1163 100644
--- a/src/Erebos/Network/Protocol.hs
+++ b/src/Erebos/Network/Protocol.hs
@@ -7,6 +7,7 @@ module Erebos.Network.Protocol (
SecurityRequirement(..),
WaitingRef(..),
+ DataRequestResult(..),
WaitingRefCallback,
wrDigest,
@@ -464,10 +465,16 @@ writeByteStringToStream stream = go 0
data WaitingRef = WaitingRef
{ wrefStorage :: Storage
, wrefPartial :: PartialRef
- , wrefAction :: Ref -> WaitingRefCallback
- , wrefStatus :: TVar (Either [RefDigest] Ref)
+ , wrefBound :: Word64
+ , wrefAction :: DataRequestResult -> WaitingRefCallback
+ , wrefStatus :: TVar (Either [ RefDigest ] DataRequestResult)
}
+data DataRequestResult
+ = DataRequestFulfilled Ref
+ | DataRequestRejected
+ | DataRequestBrokenBound
+
type WaitingRefCallback = ExceptT ErebosError IO ()
wrDigest :: WaitingRef -> RefDigest