0 | module System.UV.Raw.TCP
2 | import System.UV.Raw.Callback
3 | import System.UV.Raw.Handle
4 | import System.UV.Raw.Loop
5 | import System.UV.Raw.Pointer
6 | import System.UV.Raw.Req
7 | import System.UV.Raw.Util
15 | %foreign (idris_uv "uv_tcp_init")
16 | prim__uv_tcp_init : Ptr Loop -> Ptr Tcp -> PrimIO Int32
18 | %foreign (idris_uv "uv_tcp_keepalive")
19 | prim__uv_tcp_keepalive : Ptr Tcp -> Int32 -> Bits32 -> PrimIO Int32
21 | %foreign (idris_uv "uv_tcp_simultaneous_accepts")
22 | prim__uv_tcp_simultaneous_accepts : Ptr Tcp -> Int32 -> PrimIO Int32
24 | %foreign (idris_uv "uv_tcp_bind")
25 | prim__uv_tcp_bind : Ptr Tcp -> Ptr SockAddr -> Bits32 -> PrimIO Int32
27 | %foreign (idris_uv "uv_tcp_getsocketname")
28 | prim__uv_tcp_getsocketname : Ptr Tcp -> Ptr SockAddr -> Int32 -> PrimIO Int32
30 | %foreign (idris_uv "uv_tcp_getpeername")
31 | prim__uv_tcp_getpeername : Ptr Tcp -> Ptr SockAddr -> Int32 -> PrimIO Int32
33 | %foreign (idris_uv "uv_tcp_connect")
34 | prim__uv_tcp_connect :
41 | %foreign (idris_uv "uv_ip4_addr")
42 | prim__uv_ip4_addr : String -> Bits16 -> Ptr SockAddrIn -> PrimIO Int32
44 | %foreign (idris_uv "uv_ip6_addr")
45 | prim__uv_ip6_addr : String -> Bits16 -> Ptr SockAddrIn6 -> PrimIO Int32
47 | %foreign (idris_uv "uv_ip4_name")
48 | prim__uv_ip4_name : Ptr SockAddrIn -> Ptr Char -> Bits32 -> PrimIO Int32
50 | %foreign (idris_uv "uv_ip6_name")
51 | prim__uv_ip6_name : Ptr SockAddrIn6 -> Ptr Char -> Bits32 -> PrimIO Int32
53 | %foreign (idris_uv "uv_ip6_name")
54 | prim__uv_ip_name : Ptr SockAddr -> Ptr Char -> Bits32 -> PrimIO Int32
60 | parameters {auto has : HasIO io}
64 | uv_tcp_init : Ptr Loop -> Ptr Tcp -> io Int32
65 | uv_tcp_init l p = primIO $
prim__uv_tcp_init l p
75 | uv_tcp_keepalive : Ptr Tcp -> Bool -> (delay : Bits32)-> io Int32
76 | uv_tcp_keepalive tcp b delay =
77 | primIO $
prim__uv_tcp_keepalive tcp (boolToInt32 b) delay
89 | uv_tcp_simultaneous_accepts : Ptr Tcp -> Bool -> io Int32
90 | uv_tcp_simultaneous_accepts tcp b =
91 | primIO $
prim__uv_tcp_simultaneous_accepts tcp (boolToInt32 b)
105 | {auto 0 _ : PCast t SockAddr}
108 | -> (flags : Bits32)
110 | uv_tcp_bind tcp sa flags = primIO $
prim__uv_tcp_bind tcp (castPtr sa) flags
124 | {auto 0 _ : PCast t SockAddr}
127 | -> (Ptr Connect -> Int32 -> IO ())
129 | uv_tcp_connect tcp sa act = do
130 | pc <- mallocPtr Connect
131 | cb <- ptrIntCB (\x,y => act x y >> freeReq x)
132 | uv_req_set_data pc cb
133 | primIO $
prim__uv_tcp_connect pc tcp (castPtr sa) cb
141 | uv_ip4_addr : String -> Bits16 -> Ptr SockAddrIn -> io Int32
142 | uv_ip4_addr addr port ptr = primIO $
prim__uv_ip4_addr addr port ptr
146 | uv_ip6_addr : String -> Bits16 -> Ptr SockAddrIn6 -> io Int32
147 | uv_ip6_addr addr port ptr = primIO $
prim__uv_ip6_addr addr port ptr
151 | uv_ip4_name : Ptr SockAddrIn -> Ptr Char -> Bits32 -> io Int32
152 | uv_ip4_name sa str len = primIO $
prim__uv_ip4_name sa str len
156 | uv_ip6_name : Ptr SockAddrIn6 -> Ptr Char -> Bits32 -> io Int32
157 | uv_ip6_name sa str len = primIO $
prim__uv_ip6_name sa str len
162 | uv_ip_name : Ptr SockAddr -> Ptr Char -> Bits32 -> io Int32
163 | uv_ip_name sa str len = primIO $
prim__uv_ip_name sa str len