1 module Databrary.Ingest.Service 2 ( IngestStatus(..) 3 , Ingest(..) 4 , initIngest 5 ) where 6 7 import Control.Concurrent (ThreadId) 8 import Control.Concurrent.MVar (MVar, newMVar) 9 import Data.Int (Int32) 10 import qualified Data.Text as T 11 12 data IngestStatus 13 = IngestInactive 14 | IngestActive ThreadId 15 | IngestCompleted [Int32] 16 | IngestFailed [T.Text] 17 18 newtype Ingest = Ingest 19 { ingestStatus :: MVar IngestStatus 20 } 21 22 initIngest :: IO Ingest 23 initIngest = Ingest <$> newMVar IngestInactive 24