From fe12e76da86b514ae5725fb8eaec7821c0376558 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Sun, 1 Dec 2013 14:29:56 +0400 Subject: Move exchange extension stuff to the Message module --- src/Network/BitTorrent/Exchange/Status.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/Network/BitTorrent/Exchange/Status.hs') diff --git a/src/Network/BitTorrent/Exchange/Status.hs b/src/Network/BitTorrent/Exchange/Status.hs index 683ac594..7920f2a1 100644 --- a/src/Network/BitTorrent/Exchange/Status.hs +++ b/src/Network/BitTorrent/Exchange/Status.hs @@ -4,6 +4,7 @@ module Network.BitTorrent.Exchange.Status PeerStatus(..) , choking , interested + , updateStatus -- * Session status , SessionStatus(..) @@ -24,6 +25,9 @@ import Data.Aeson.TH import Data.List as L import Data.Default +import Network.BitTorrent.Exchange.Message + + -- | data PeerStatus = PeerStatus { _choking :: !Bool @@ -36,6 +40,15 @@ $(deriveJSON L.tail ''PeerStatus) instance Default PeerStatus where def = PeerStatus True False +updateStatus :: StatusUpdate -> PeerStatus -> PeerStatus +updateStatus Choke = choking .~ True +updateStatus Unchoke = choking .~ False +updateStatus Interested = interested .~ True +updateStatus NotInterested = interested .~ False + +statusUpdates :: PeerStatus -> PeerStatus -> [StatusUpdate] +statusUpdates a b = undefined + -- | data SessionStatus = SessionStatus { _clientStatus :: !PeerStatus -- cgit v1.2.3