packages feed

sockets-0.6.1.0: src-interrupt/Socket/Interrupt.hsig

{-# language DataKinds #-}
{-# language KindSignatures #-}

signature Socket.Interrupt where

import Prelude (IO,Either,Int)

import Control.Concurrent.STM (TVar)
import Socket.EventManager (Token)
import Socket (Interruptibility)
import GHC.Exts (RuntimeRep,TYPE)
import qualified Socket.Stream as Stream
import qualified Socket.SequencedPacket as SequencedPacket
import qualified Socket.Datagram as Datagram

data InterruptRep :: RuntimeRep
data Interrupt :: TYPE InterruptRep
data Intr :: Interruptibility

wait :: Interrupt -> TVar Token -> IO Token

tokenToSequencedPacketSendException ::
     Token
  -> Either (SequencedPacket.SendException Intr) ()
tokenToSequencedPacketReceiveException ::
     Token
  -> Either (SequencedPacket.ReceiveException Intr) ()
tokenToStreamSendException ::
     Token
  -> Int
  -> Either (Stream.SendException Intr) ()
tokenToStreamReceiveException ::
     Token
  -> Int
  -> Either (Stream.ReceiveException Intr) ()
tokenToDatagramSendException ::
     Token
  -> Either (Datagram.SendException Intr) ()
tokenToDatagramReceiveException ::
     Token
  -> Either (Datagram.ReceiveException Intr) ()