packages feed

bein-0.3: Bein/Minion/Types.hs

module Bein.Minion.Types (
  module Bein.Types,
  State(..), 
  Settings(..)
) where

import Database.HDBC.PostgreSQL ( Connection )
import Control.Concurrent.STM ( TVar )
import System.Posix.Types ( ProcessID )
import Bein.Types
    ( BeinError(..),
      AuthenticationFailed(..),
      Authentication(..),
      ConfigurationError(..),
      Configuration(..),
      BeinState(..),
      BeinM,
      ExecutionID(..),
      configField,
      unExecutionID,
      errorNumber,
      errorName )

data Settings = Settings { setVerbose :: Bool,
                           setScratchDir :: FilePath,
                           setExecution :: ExecutionID
                           } deriving Show


data State = State { stDb :: Connection, 
                     stConfigT :: TVar Configuration, 
                     stSettings :: Settings,
                     stMinionPid :: TVar (Maybe ProcessID)
                     } 

instance BeinState State where
  configT = stConfigT
  db = stDb