natskell-0.0.0.1: internal/Plumbing/Pipeline/Broadcasting.hs
module Pipeline.Broadcasting
( broadcastingApi
) where
import Conduit
import Lib.Logger.Types (MonadLogger)
import Network.ConnectionAPI (WriterAPI)
import Pipeline.Broadcasting.API (BroadcastingAPI (..))
import Pipeline.Broadcasting.Sink
import Pipeline.Broadcasting.Source
import Pipeline.Broadcasting.Transformer
import Queue.API (Queue)
runBroadcasting :: (MonadLogger m , MonadIO m)
=> Int -> Queue -> WriterAPI writer -> writer -> m ()
runBroadcasting bufferLimit q writerApi writer = do
runConduit $ source q .| transformer bufferLimit .| sink writerApi writer
broadcastingApi :: BroadcastingAPI
broadcastingApi = BroadcastingAPI
{ run = runBroadcasting
}