gore-and-ash-network-1.4.0.0: Core module for Gore&Ash engine with low level network API

Copyright(c) Anton Gushcha, 2015-2016
LicenseBSD3
Maintainerncrashed@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Game.GoreAndAsh.Network.State

Contents

Description

 

Synopsis

Documentation

data NetworkState s Source #

Inner state of network layer

s
- State of next module, the states are chained via nesting.

Instances

Generic (NetworkState s) Source # 

Associated Types

type Rep (NetworkState s) :: * -> * #

Methods

from :: NetworkState s -> Rep (NetworkState s) x #

to :: Rep (NetworkState s) x -> NetworkState s #

NFData s => NFData (NetworkState s) Source # 

Methods

rnf :: NetworkState s -> () #

Monad m => MonadState (NetworkState s) (NetworkT s m) 

Methods

get :: NetworkT s m (NetworkState s)

put :: NetworkState s -> NetworkT s m ()

state :: (NetworkState s -> (a, NetworkState s)) -> NetworkT s m a

type Rep (NetworkState s) Source # 
type Rep (NetworkState s) = D1 (MetaData "NetworkState" "Game.GoreAndAsh.Network.State" "gore-and-ash-network-1.4.0.0-D5xAn58Rw8JIdW4B4WCLcw" False) (C1 (MetaCons "NetworkState" PrefixI True) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "networkHost") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Host))) (S1 (MetaSel (Just Symbol "networkPeers") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Seq Peer)))) ((:*:) (S1 (MetaSel (Just Symbol "networkConnectedPeers") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Seq Peer))) (S1 (MetaSel (Just Symbol "networkDisconnectedPeers") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Seq Peer))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "networkMessages") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (HashMap (Peer, ChannelID) (Seq ByteString)))) (S1 (MetaSel (Just Symbol "networkDetailedLogging") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Bool))) ((:*:) (S1 (MetaSel (Just Symbol "networkMaximumChannels") NoSourceUnpackedness SourceStrict DecidedUnpack) (Rec0 Word)) (S1 (MetaSel (Just Symbol "networkNextState") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 s))))))

type Host = Ptr Host Source #

Local endpoint

type Peer = Ptr Peer Source #

Remote endpoint

emptyNetworkState :: s -> NetworkState s Source #

Creates initial state

Orphan instances

NFData ChannelID Source # 

Methods

rnf :: ChannelID -> () #

Hashable ChannelID Source # 
Hashable Peer Source # 

Methods

hashWithSalt :: Int -> Peer -> Int

hash :: Peer -> Int