19 lines
449 B
Haskell
19 lines
449 B
Haskell
|
module Affection.MessageBus.Class where
|
||
|
|
||
|
import Control.Concurrent.STM as STM
|
||
|
|
||
|
import Data.IORef
|
||
|
|
||
|
import Affection.MessageBus.Message
|
||
|
|
||
|
type Channel msg = TChan msg
|
||
|
|
||
|
class Participant prt where
|
||
|
partChannel :: (Message msg) => prt -> IORef (Channel msg)
|
||
|
|
||
|
partConnectChannel :: (Message msg) => prt -> Channel msg -> IO ()
|
||
|
|
||
|
partListen :: (Message msg) => prt -> IO msg
|
||
|
|
||
|
partBroadcast :: (Message msg) => prt -> msg -> IO ()
|