uniform-io-0.1.0.0: Uniform IO over files, network, watever.

Safe HaskellNone
LanguageHaskell2010

System.IO.Uniform

Synopsis

Documentation

data TlsSettings Source

Settings for starttls functions.

class UniformIO a where Source

Typeclass for IO objects that behave like a Unix file (independent of seeking support).

Methods

fRead :: a -> Int -> IO ByteString Source

fRead fd n Reads a block of at most n bytes of data from the filelike object fd. Reading will block if there's no data available, but will return immediately if any amount of data is availble.

fPut :: a -> ByteString -> IO () Source

fPut fd text Writes all the bytes of text into the filelike object. Takes care of retrying if needed.

fClose :: a -> IO () Source

fClose fd Closes the filelike object, releasing any allocated resource. Resources may leak if not called for every oppened fd.

startTls :: TlsSettings -> a -> IO TlsStream Source

startTLS fd Starts a TLS connection over the filelike object.

isSecure :: a -> Bool Source

isSecure fd Indicates whether the data written or read from fd is secure at transport.

Instances

UniformIO TlsStream

UniformIO wrapper that applies TLS to communication on filelike objects.

UniformIO FileIO

UniformIO type for file IO.

UniformIO SocketIO

UniformIO IP connections.

UniformIO SomeIO 

data SocketIO Source

Instances

UniformIO SocketIO

UniformIO IP connections.

data FileIO Source

Instances

UniformIO FileIO

UniformIO type for file IO.

data TlsStream Source

Instances

UniformIO TlsStream

UniformIO wrapper that applies TLS to communication on filelike objects.

data BoundPort Source

A bound IP port from where to accept SocketIO connections.

data SomeIO Source

A type that wraps any type in the UniformIO class.

Constructors

forall a . UniformIO a => SomeIO a 

Instances

connectTo :: IP -> Int -> IO SocketIO Source

ConnecctTo ipAddress port Connects to the given port of the host at the given IP address.

connectToHost :: String -> Int -> IO SocketIO Source

connectToHost hostName port Connects to the given host and port.

bindPort :: Int -> IO BoundPort Source

bindPort port Binds to the given IP port, becoming ready to accept connections on it. Binding to port numbers under 1024 will fail unless performed by the superuser, once bound, a process can reduce its privileges and still accept clients on that port.

accept :: BoundPort -> IO SocketIO Source

accept port Accept clients on a port previously bound with bindPort.

openFile :: String -> IO FileIO Source

Open a file for bidirectional IO.

getPeer :: SocketIO -> IO (IP, Int) Source

Gets the address of the peer socket of a internet connection.

closePort :: BoundPort -> IO () Source

Closes a BoundPort, and releases any resource used by it.