62 lines
1.4 KiB
Haxe
62 lines
1.4 KiB
Haxe
package eval.luv;
|
|
|
|
import haxe.ds.Option;
|
|
import eval.luv.SockAddr;
|
|
|
|
/**
|
|
TCP sockets.
|
|
|
|
@see https://aantron.github.io/luv/luv/Luv/TCP
|
|
**/
|
|
@:using(eval.luv.Handle)
|
|
@:using(eval.luv.Stream)
|
|
@:coreType abstract Tcp to Handle to Stream to Stream.TStream<Tcp> to Handle.SocketHandle {
|
|
/**
|
|
Allocates and initializes a TCP stream.
|
|
|
|
The stream is not yet connected or listening.
|
|
|
|
The handle should be cleaned up with `eval.luv.Handle.close` when no longer needed.
|
|
**/
|
|
static public function init(loop:Loop, ?domain:AddressFamily):Result<Tcp>;
|
|
|
|
/**
|
|
Sets TCP_NODELAY.
|
|
**/
|
|
public function noDelay(enable:Bool):Result<Result.NoData>;
|
|
|
|
/**
|
|
Sets the TCP keepalive.
|
|
**/
|
|
public function keepAlive(value:Option<Int>):Result<Result.NoData>;
|
|
|
|
/**
|
|
Sets simultaneous accept.
|
|
**/
|
|
public function simultaneousAccepts(value:Bool):Result<Result.NoData>;
|
|
|
|
/**
|
|
Assigns an address to the TCP socket.
|
|
**/
|
|
public function bind(addr:SockAddr, ipv6Only:Bool = false):Result<Result.NoData>;
|
|
|
|
/**
|
|
Retrieves the address assigned to the TCP socket.
|
|
**/
|
|
public function getSockName():Result<SockAddr>;
|
|
|
|
/**
|
|
Retrieves the address of the TCP socket's peer.
|
|
**/
|
|
public function getPeerName():Result<SockAddr>;
|
|
|
|
/**
|
|
Connects to a host.
|
|
**/
|
|
public function connect(addr:SockAddr, callback:(result:Result<Result.NoData>)->Void):Void;
|
|
|
|
/**
|
|
Resets the connection.
|
|
**/
|
|
public function closeReset(callback:(result:Result<Result.NoData>)->Void):Void;
|
|
} |