packages feed

EtaMOO-0.2.0.0: src/MOO/Network.hs-boot

-- -*- Haskell -*-

module MOO.Network (
    Point(..)
  , Listener(..)
  , HostName
  , createListener
  , unlisten
  ) where

import Control.Concurrent.STM (TVar)
import Network.Socket (HostName, PortNumber)

import {-# SOURCE #-} MOO.Task
import MOO.Types (ObjId)

data Point = Console (TVar World) | TCP (Maybe HostName) PortNumber

data Listener = Listener {
    listenerObject        :: ObjId
  , listenerPoint         :: Point
  , listenerPrintMessages :: Bool

  , listenerCancel        :: IO ()
  }

createListener :: TVar World -> ObjId -> Point -> Bool -> IO Listener
unlisten :: Point -> MOO ()