bake-0.1: src/Development/Bake/Server/Type.hs
-- | Define a continuous integration system.
module Development.Bake.Server.Type(
Server(..), defaultServer,
Question(..), Answer(..), Ping(..)
) where
import Development.Bake.Type
import Development.Bake.Message
import Data.Time.Clock
defaultServer :: State -> Server
defaultServer s = Server [] [] [] (s,[]) Nothing [] [] []
data Server = Server
{history :: [(UTCTime, Question, Maybe Answer)]
-- ^ Questions you have sent to clients, and how they responded (if they have).
-- The aStdout has been written to disk, and the value is a filename containing the stdout.
,updates :: [(UTCTime, State, (State, [Patch]))]
-- ^ Updates that have been made
,pings :: [(UTCTime, Ping)]
-- ^ Latest time of a ping sent by each client
,active :: (State, [Patch])
-- ^ The candidate we are currently aiming to prove
,paused :: Maybe [(UTCTime, Patch)]
-- ^ 'Just' if we are paused, and the number of people queued up
,submitted :: [(UTCTime, Patch)]
-- ^ List of all patches that have been submitted over time
,authors :: [(Maybe Patch, Author)]
-- ^ Authors associated with each patch (Nothing is the server author)
,extra :: [(Patch, (String, String))]
-- ^ Extra information that was computed for each string (cached forever)
} deriving Show