+++ /dev/null
-{-
- - Copyright (C) 2015-2016 Ramakrishnan Muthukrishnan <ram@rkrishnan.org>
- -
- - This file is part of FuncTorrent.
- -
- - FuncTorrent is free software; you can redistribute it and/or modify
- - it under the terms of the GNU General Public License as published by
- - the Free Software Foundation; either version 3 of the License, or
- - (at your option) any later version.
- -
- - FuncTorrent is distributed in the hope that it will be useful,
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - GNU General Public License for more details.
- -
- - You should have received a copy of the GNU General Public License
- - along with FuncTorrent; if not, see <http://www.gnu.org/licenses/>
- -}
-
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE DuplicateRecordFields #-}
-module FuncTorrent.Tracker.Types
- ( TrackerProtocol(..)
- , HttpTrackerResponse(..)
- , UdpTrackerResponse(..)
- , TrackerEventState(..)
- , TState(..)
- , TrackerMsg(..)
- ) where
-
-import Data.ByteString (ByteString)
-import Data.Word (Word32)
-import Control.Concurrent.MVar (MVar)
-
-import FuncTorrent.PeerMsgs (Peer)
-
-data TrackerProtocol = Http
- | Udp
- | UnknownProtocol
- deriving (Show)
-
-data TrackerEventState = None
- | Started
- | Completed
- | Stopped
- deriving (Show, Eq)
-
-data TrackerMsg = GetStatusMsg TrackerEventState
- | GetConnectedPeersMsg (MVar [Peer])
-
-data TState = TState { left :: Integer
- , currentState :: TrackerEventState
- , connectedPeers :: MVar [Peer]
- }
-
--- | Tracker response
-data HttpTrackerResponse = HttpTrackerResponse {
- interval :: Integer
- , peers :: [Peer]
- , complete :: Maybe Integer
- , incomplete :: Maybe Integer
- } deriving (Show, Eq)
-
-data UdpTrackerResponse = UdpTrackerResponse {
- leechers :: Word32
- , seeders :: Word32
- , interval :: Word32
- , peers :: [Peer]
- } deriving (Show)