0 | module Node.Net.Socket.Connect
3 | import Node.Internal.Support
4 | import Node.Net.Socket.Type
13 | familyAsInt : IpAddressFamily -> Int
20 | record TCPOptions where
21 | constructor MkTCPOptons
24 | localAddress: Maybe String
25 | localPort: Maybe Int
26 | family: IpAddressFamily
31 | keepAliveInitialDelay: Int
34 | record IPCOptions where
35 | constructor MkIPCOptions
39 | options : SocketType -> Type
40 | options TCP = TCPOptions
41 | options IPC = IPCOptions
44 | defaultTCPOptions : (port : Int) -> options TCP
45 | defaultTCPOptions port = MkTCPOptons
48 | , localAddress = Nothing
49 | , localPort = Nothing
53 | , keepAliveInitialDelay = 0
57 | defaultIPCOptions : (path : String) -> options IPC
58 | defaultIPCOptions path = MkIPCOptions
70 | , keepAliveInitialDelay
74 | localAddress: _maybe(localAddress),
75 | localPort: _maybe(localPort),
79 | keepAliveInitialDelay
82 | ffi_convertTCPOptions :
84 | -> (host: Maybe String)
85 | -> (localAddress: Maybe String)
86 | -> (localPort: Maybe Int)
89 | -> (keepAlive: Bool)
90 | -> (keepAliveInitialDelay: Int)
91 | -> Node $
options TCP
100 | ffi_convertIPCOptions :
102 | -> Node $
options IPC
105 | convertOptions : (t : SocketType) -> options t -> Node $
options t
106 | convertOptions TCP o = ffi_convertTCPOptions
111 | (familyAsInt o.family)
114 | o.keepAliveInitialDelay
115 | convertOptions IPC o = ffi_convertIPCOptions o.path