mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
5df9b43a20
commit
23fe095d38
|
@ -1,71 +0,0 @@
|
|||
module HBS2.Net.Proto.Actors.BlockInfo where
|
||||
|
||||
import HBS2.Actors
|
||||
import HBS2.Hash
|
||||
import HBS2.Net.PeerLocator
|
||||
import HBS2.Net.Proto
|
||||
import HBS2.Prelude
|
||||
|
||||
import Data.Kind
|
||||
import Prettyprinter
|
||||
|
||||
-- needs: logger
|
||||
-- needs: reader and shit
|
||||
-- needs: messaging
|
||||
-- needs: cookie manager
|
||||
-- needs: peer manager
|
||||
|
||||
data BlockInfoActor (m :: Type -> Type) =
|
||||
BlockInfoActor
|
||||
{ tasks :: Pipeline m ()
|
||||
, peers :: AnyPeerLocator
|
||||
}
|
||||
|
||||
-- TODO: send block info request
|
||||
-- TODO: receive block info request
|
||||
-- TODO: cache block info per peer
|
||||
-- TODO: get block info per peer
|
||||
|
||||
|
||||
createBlockInfoActor :: MonadIO m => AnyPeerLocator -> m (BlockInfoActor m )
|
||||
createBlockInfoActor l = do
|
||||
pip <- newPipeline 200 -- FIXME: to settings!
|
||||
pure $ BlockInfoActor pip l
|
||||
|
||||
runBlockInfoActor :: MonadIO m => BlockInfoActor m -> m ()
|
||||
runBlockInfoActor b = runPipeline (tasks b)
|
||||
|
||||
stopBlockInfoActor :: MonadIO m => BlockInfoActor m -> m ()
|
||||
stopBlockInfoActor b = stopPipeline (tasks b)
|
||||
|
||||
requestBlockInfo :: forall peer h m . ( MonadIO m
|
||||
, Pretty (Hash h)
|
||||
, HasPeer peer
|
||||
)
|
||||
=> BlockInfoActor m
|
||||
-> Maybe (Peer peer)
|
||||
-> Hash h
|
||||
-> m ()
|
||||
|
||||
requestBlockInfo b mp h = do
|
||||
addJob (tasks b) do
|
||||
-- peers <- getPeers
|
||||
--
|
||||
-- TODO: get given peer or some other peers
|
||||
somePeers <- knownPeers @_ @peer (peers b)
|
||||
|
||||
|
||||
-- TODO: get cookie from cookie generator
|
||||
-- TODO: set waiting for request
|
||||
-- TODO: send block info request to messaging
|
||||
|
||||
liftIO $ print ( "request-info" <+> pretty h)
|
||||
|
||||
getBlockInfo :: MonadIO m
|
||||
=> BlockInfoActor m
|
||||
-> Maybe (Peer peer)
|
||||
-> m (Maybe BlockInfo)
|
||||
|
||||
getBlockInfo _ _ = undefined
|
||||
|
||||
|
Loading…
Reference in New Issue