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