new type synonym for a Piece Map
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Fri, 17 Jul 2015 14:10:25 +0000 (19:40 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Fri, 17 Jul 2015 14:10:25 +0000 (19:40 +0530)
src/FuncTorrent/Peer.hs

index 817a9cde0652358370681a08be8b506f4701d080..d7197ebe488dc6c5485c0ef78ff08f9198a81bb7 100644 (file)
@@ -18,6 +18,7 @@ import Control.Monad (replicateM, liftM, forever)
 import Control.Applicative ((<$>), liftA3)
 import Data.Bits
 import Data.Word (Word8)
+import Data.Map (Map(..))
 
 import FuncTorrent.Metainfo (Info(..), Metainfo(..))
 type ID = String
@@ -39,10 +40,13 @@ data PieceState = Pending
                 | Have
                 deriving (Show)
 
-data PieceData = PieceData { index :: Int           -- ^ Piece number
-                           , peers :: [Peer]        -- ^ list of peers who have this piece
+-- todo - map with index to a new data structure (peers who have that piece amd state)
+data PieceData = PieceData { peers :: [Peer]        -- ^ list of peers who have this piece
                            , state :: PieceState }  -- ^ state of the piece from download perspective.
 
+-- which piece is with which peers
+type PieceMap = Map Integer PieceData
+
 -- | Peer is a PeerID, IP address, port tuple
 data Peer = Peer ID IP Port
           deriving (Show, Eq)