diff options
author | Sam Truzjan <pxqr.sta@gmail.com> | 2014-04-02 23:46:46 +0400 |
---|---|---|
committer | Sam Truzjan <pxqr.sta@gmail.com> | 2014-04-02 23:46:46 +0400 |
commit | 521e05a8363dd6505a4cd9db41545c5197900a27 (patch) | |
tree | caa55faf27d6c0251475b0e3680ed81689b2fa37 /src/Network/BitTorrent/Client | |
parent | 51d8b40d3b2a4a6f18d8eb1794a4d1c29ab52587 (diff) |
Add client state updates eventstream
Diffstat (limited to 'src/Network/BitTorrent/Client')
-rw-r--r-- | src/Network/BitTorrent/Client/Types.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/Client/Types.hs b/src/Network/BitTorrent/Client/Types.hs index 3e62f0fa..d6b08efe 100644 --- a/src/Network/BitTorrent/Client/Types.hs +++ b/src/Network/BitTorrent/Client/Types.hs | |||
@@ -12,10 +12,14 @@ module Network.BitTorrent.Client.Types | |||
12 | , getClient | 12 | , getClient |
13 | 13 | ||
14 | , MonadBitTorrent (..) | 14 | , MonadBitTorrent (..) |
15 | |||
16 | -- * Events | ||
17 | , ClientEvent (..) | ||
15 | ) where | 18 | ) where |
16 | 19 | ||
17 | import Control.Applicative | 20 | import Control.Applicative |
18 | import Control.Concurrent | 21 | import Control.Concurrent |
22 | import Control.Concurrent.Chan.Split | ||
19 | import Control.Monad.Logger | 23 | import Control.Monad.Logger |
20 | import Control.Monad.Reader | 24 | import Control.Monad.Reader |
21 | import Control.Monad.Trans.Resource | 25 | import Control.Monad.Trans.Resource |
@@ -48,6 +52,7 @@ data Client = Client | |||
48 | , clientNode :: !(Node IPv4) | 52 | , clientNode :: !(Node IPv4) |
49 | , clientTorrents :: !(MVar (HashMap InfoHash Handle)) | 53 | , clientTorrents :: !(MVar (HashMap InfoHash Handle)) |
50 | , clientLogger :: !LogFun | 54 | , clientLogger :: !LogFun |
55 | , clientEvents :: !(SendPort ClientEvent) | ||
51 | } | 56 | } |
52 | 57 | ||
53 | instance Eq Client where | 58 | instance Eq Client where |
@@ -66,6 +71,10 @@ externalAddr Client {..} = PeerAddr | |||
66 | , peerPort = clientListenerPort | 71 | , peerPort = clientListenerPort |
67 | } | 72 | } |
68 | 73 | ||
74 | data ClientEvent | ||
75 | = TorrentAdded InfoHash | ||
76 | deriving (Show, Eq) | ||
77 | |||
69 | {----------------------------------------------------------------------- | 78 | {----------------------------------------------------------------------- |
70 | -- BitTorrent monad | 79 | -- BitTorrent monad |
71 | -----------------------------------------------------------------------} | 80 | -----------------------------------------------------------------------} |