Safe Haskell | None |
---|---|
Language | Haskell2010 |
The server definitions for the server-client communication protocol.
- type ConnServerDict = EnumMap FactionId ChanServer
- class MonadServer m => MonadServerReadRequest m where
- putDict :: MonadServerReadRequest m => ConnServerDict -> m ()
- sendUpdate :: MonadServerReadRequest m => FactionId -> UpdAtomic -> m ()
- sendSfx :: MonadServerReadRequest m => FactionId -> SfxAtomic -> m ()
- sendQueryAI :: MonadServerReadRequest m => FactionId -> ActorId -> m RequestAI
- sendQueryUI :: (MonadAtomic m, MonadServerReadRequest m) => FactionId -> ActorId -> m RequestUI
- killAllClients :: (MonadAtomic m, MonadServerReadRequest m) => m ()
- childrenServer :: MVar [Async ()]
- updateConn :: (MonadAtomic m, MonadServerReadRequest m) => Config -> (Maybe SessionUI -> FactionId -> ChanServer -> IO ()) -> m ()
- tryRestore :: MonadServerReadRequest m => COps -> DebugModeSer -> m (Maybe (State, StateServer))
The communication channels
type ConnServerDict = EnumMap FactionId ChanServer Source #
Connection information for all factions, indexed by faction identifier.
The server-client communication monad
class MonadServer m => MonadServerReadRequest m where Source #
The server monad with the ability to communicate with clients.
getsDict :: (ConnServerDict -> a) -> m a Source #
modifyDict :: (ConnServerDict -> ConnServerDict) -> m () Source #
Protocol
putDict :: MonadServerReadRequest m => ConnServerDict -> m () Source #
sendUpdate :: MonadServerReadRequest m => FactionId -> UpdAtomic -> m () Source #
sendQueryAI :: MonadServerReadRequest m => FactionId -> ActorId -> m RequestAI Source #
sendQueryUI :: (MonadAtomic m, MonadServerReadRequest m) => FactionId -> ActorId -> m RequestUI Source #
Assorted
killAllClients :: (MonadAtomic m, MonadServerReadRequest m) => m () Source #
childrenServer :: MVar [Async ()] Source #
updateConn :: (MonadAtomic m, MonadServerReadRequest m) => Config -> (Maybe SessionUI -> FactionId -> ChanServer -> IO ()) -> m () Source #
Update connections to the new definition of factions. Connect to clients in old or newly spawned threads that read and write directly to the channels.
tryRestore :: MonadServerReadRequest m => COps -> DebugModeSer -> m (Maybe (State, StateServer)) Source #