toxcore-0.2.12: A Tox protocol implementation in Haskell
Safe HaskellNone
LanguageHaskell2010

Tox.Network.Core.Networked

Description

Abstraction layer for network functionality.

The intention is to (i) separate the logic of the protocol from its binary encoding, and (ii) allow a simulated network in place of actual network IO.

Synopsis

Documentation

class Monad m => Networked m where Source #

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> m () Source #

Instances

Instances details
Networked m => Networked (KeyedT m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> KeyedT m () Source #

Monad m => Networked (NetworkLogged m) Source #

just log network events

Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> NetworkLogged m () Source #

Networked m => Networked (TimedT m) Source # 
Instance details

Defined in Tox.Network.Core.TimedT

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> TimedT m () Source #

Networked m => Networked (RandT s m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> RandT s m () Source #

(Monoid w, Networked m) => Networked (WriterT w m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> WriterT w m () Source #

Networked m => Networked (StateT s m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> StateT s m () Source #

Networked (StateT NetworkState IO) Source #

actual network IO

Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> StateT NetworkState IO () Source #

Networked m => Networked (ReaderT r m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> ReaderT r m () Source #

Monad m => Networked (DhtConduit i (NodeInfo, Packet ByteString) m) Source #

The Networked instance for DhtConduit yields outgoing packets.

Instance details

Defined in Tox.Conduit.DHT

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> DhtConduit i (NodeInfo, Packet ByteString) m () Source #

type NetworkState = () Source #

TODO: sockets etc

newtype NetworkLogged m a Source #

Constructors

NetworkLogged (WriterT [NetworkAction] m a) 

Instances

Instances details
DhtNodeMonad TestDhtNodeMonad Source # 
Instance details

Defined in Tox.DHT.Operation

MonadState s m => MonadState s (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

get :: NetworkLogged m s #

put :: s -> NetworkLogged m () #

state :: (s -> (a, s)) -> NetworkLogged m a #

Monad m => Monad (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

(>>=) :: NetworkLogged m a -> (a -> NetworkLogged m b) -> NetworkLogged m b #

(>>) :: NetworkLogged m a -> NetworkLogged m b -> NetworkLogged m b #

return :: a -> NetworkLogged m a #

Functor m => Functor (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

fmap :: (a -> b) -> NetworkLogged m a -> NetworkLogged m b #

(<$) :: a -> NetworkLogged m b -> NetworkLogged m a #

Applicative m => Applicative (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

pure :: a -> NetworkLogged m a #

(<*>) :: NetworkLogged m (a -> b) -> NetworkLogged m a -> NetworkLogged m b #

liftA2 :: (a -> b -> c) -> NetworkLogged m a -> NetworkLogged m b -> NetworkLogged m c #

(*>) :: NetworkLogged m a -> NetworkLogged m b -> NetworkLogged m b #

(<*) :: NetworkLogged m a -> NetworkLogged m b -> NetworkLogged m a #

Timed m => Timed (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

MonadRandomBytes m => MonadRandomBytes (NetworkLogged m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Monad m => Networked (NetworkLogged m) Source #

just log network events

Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> NetworkLogged m () Source #