module OpenSocket(
openSocketF,openSocketErrF,
openLSocketF,openLSocketErrF,
openFileAsSocketF,openFileAsSocketErrF
) where
import Srequest
import Sockets
openSocketF :: Host -> Port -> (Socket -> f b ho) -> f b ho
openSocketF Host
h = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Host -> Port -> (Socket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Port -> (Socket -> t) -> t
openSocketF' SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIO Host
h
openLSocketF :: Port -> (LSocket -> f b ho) -> f b ho
openLSocketF Port
p = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Port -> (LSocket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Port -> (LSocket -> t) -> t
openLSocketF' SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIO Port
p
openFileAsSocketF :: Host -> Host -> (Socket -> f b ho) -> f b ho
openFileAsSocketF Host
h = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Host -> Host -> (Socket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Host -> (Socket -> t) -> t
openFileAsSocketF' SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIO Host
h
openSocketErrF :: Host -> Port -> (IOError -> f b ho) -> (Socket -> f b ho) -> f b ho
openSocketErrF Host
h Port
p IOError -> f b ho
e = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Host -> Port -> (Socket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Port -> (Socket -> t) -> t
openSocketF' ((IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
(IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIOerr' IOError -> f b ho
e) Host
h Port
p
openLSocketErrF :: Port -> (IOError -> f b ho) -> (LSocket -> f b ho) -> f b ho
openLSocketErrF Port
p IOError -> f b ho
e = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Port -> (LSocket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Port -> (LSocket -> t) -> t
openLSocketF' ((IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
(IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIOerr' IOError -> f b ho
e) Port
p
openFileAsSocketErrF :: Host -> Host -> (IOError -> f b ho) -> (Socket -> f b ho) -> f b ho
openFileAsSocketErrF Host
n Host
m IOError -> f b ho
e = (SocketRequest -> (SocketResponse -> f b ho) -> f b ho)
-> Host -> Host -> (Socket -> f b ho) -> f b ho
forall t t.
(SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Host -> (Socket -> t) -> t
openFileAsSocketF' ((IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
(IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIOerr' IOError -> f b ho
e) Host
n Host
m
openSocketF' :: (SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Port -> (Socket -> t) -> t
openSocketF' SocketRequest -> (SocketResponse -> t) -> t
sio Host
host Port
port Socket -> t
cont =
SocketRequest -> (SocketResponse -> t) -> t
sio (Host -> Port -> SocketRequest
OpenSocket Host
host Port
port) ((SocketResponse -> t) -> t) -> (SocketResponse -> t) -> t
forall a b. (a -> b) -> a -> b
$ \ (Socket Socket
socket) -> Socket -> t
cont Socket
socket
openLSocketF' :: (SocketRequest -> (SocketResponse -> t) -> t)
-> Port -> (LSocket -> t) -> t
openLSocketF' SocketRequest -> (SocketResponse -> t) -> t
sio Port
port LSocket -> t
cont =
SocketRequest -> (SocketResponse -> t) -> t
sio (Port -> SocketRequest
OpenLSocket Port
port) ((SocketResponse -> t) -> t) -> (SocketResponse -> t) -> t
forall a b. (a -> b) -> a -> b
$ \(LSocket LSocket
lsocket) -> LSocket -> t
cont LSocket
lsocket
openFileAsSocketF' :: (SocketRequest -> (SocketResponse -> t) -> t)
-> Host -> Host -> (Socket -> t) -> t
openFileAsSocketF' SocketRequest -> (SocketResponse -> t) -> t
sio Host
name Host
mode Socket -> t
cont =
SocketRequest -> (SocketResponse -> t) -> t
sio (Host -> Host -> SocketRequest
OpenFileAsSocket Host
name Host
mode) ((SocketResponse -> t) -> t) -> (SocketResponse -> t) -> t
forall a b. (a -> b) -> a -> b
$ \ (Socket Socket
socket) -> Socket -> t
cont Socket
socket
sIOerr' :: (IOError -> f b ho)
-> SocketRequest -> (SocketResponse -> f b ho) -> f b ho
sIOerr' IOError -> f b ho
e SocketRequest
r = SocketRequest
-> (IOError -> f b ho) -> (SocketResponse -> f b ho) -> f b ho
forall (f :: * -> * -> *) b ho.
FudgetIO f =>
SocketRequest
-> (IOError -> f b ho) -> (SocketResponse -> f b ho) -> f b ho
sIOerr SocketRequest
r IOError -> f b ho
e