diff options
Diffstat (limited to 'src/Erebos/Network')
| -rw-r--r-- | src/Erebos/Network/Protocol.hs | 11 |
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 |