]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Peer.hs
FileSystem: do not expose msgs outside the module, instead expose helper fns
[functorrent.git] / src / FuncTorrent / Peer.hs
index 834c8086032c700f921e7034975156f2b1653e6e..bd66f99a43ef5c0f0357a56fd32ec4cc00c3b781 100644 (file)
@@ -7,7 +7,6 @@ module FuncTorrent.Peer
 
 import Prelude hiding (lookup, concat, replicate, splitAt, take, drop)
 
-import Control.Concurrent.Chan (writeChan)
 import Control.Monad.State
 import Data.ByteString (ByteString, unpack, concat, hGet, hPut, take, drop, empty)
 import Data.Bits
@@ -20,7 +19,7 @@ import FuncTorrent.Metainfo (Metainfo(..))
 import FuncTorrent.PeerMsgs (Peer(..), PeerMsg(..), sendMsg, getMsg, genHandshakeMsg)
 import FuncTorrent.Utils (splitNum, verifyHash)
 import FuncTorrent.PieceManager (PieceDlState(..), PieceData(..), PieceMap, pickPiece, updatePieceAvailability)
-import qualified FuncTorrent.FileSystem as FS (MsgChannel, Msg(..), Piece(..))
+import qualified FuncTorrent.FileSystem as FS (MsgChannel, writePiece, Piece(..))
 
 data PState = PState { handle :: Handle
                      , peer :: Peer
@@ -117,7 +116,7 @@ msgLoop pieceStatus msgchannel = do
             liftIO $ putStrLn "Hash mismatch"
             else do
             liftIO $ putStrLn $ "Write piece: " ++ show workPiece
-            liftIO $ writeChan msgchannel $ FS.WritePiece (FS.Piece workPiece pBS)
+            liftIO $ FS.writePiece msgchannel workPiece pBS
             msgLoop (adjust (\pieceData -> pieceData { dlstate = Have }) workPiece pieceStatus) msgchannel
     _ -> do
       msg <- liftIO $ getMsg h