diff options
Diffstat (limited to 'doc/src/manual/ranch_transport.sendfile.asciidoc')
-rw-r--r-- | doc/src/manual/ranch_transport.sendfile.asciidoc | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/doc/src/manual/ranch_transport.sendfile.asciidoc b/doc/src/manual/ranch_transport.sendfile.asciidoc new file mode 100644 index 0000000..1bbc79b --- /dev/null +++ b/doc/src/manual/ranch_transport.sendfile.asciidoc @@ -0,0 +1,84 @@ += ranch_transport:sendfile(3) + +== Name + +ranch_transport:sendfile - Send a file on the socket + +== Description + +[source,erlang] +---- +sendfile(Transport :: module(), + Socket :: ranch_transport:socket(), + File :: file:name_all() | file:fd(), + Offset :: non_neg_integer(), + Bytes :: non_neg_integer(), + Opts :: ranch_transport:sendfile_opts()) + -> {ok, SentBytes :: non_neg_integer()} | {error, atom()} +---- + +Send a file on the socket. + +The file may be sent full or in parts, and may be specified +by its filename or by an already open file descriptor. + +This function emulates the function `file:sendfile/2,4,5` +and may be used when transports are not manipulating TCP +directly. + +== Arguments + +Transport:: + +The transport module. + +Socket:: + +The socket. + +File:: + +The filename or file descriptor for the file to be sent. + +Offset:: + +Start position in the file, in bytes. + +Bytes:: + +Length in bytes. + +Opts:: + +Additional options. + +== Return value + +The number of bytes actually sent is returned on success +inside an `ok` tuple. + +An `error` tuple is returned otherwise. + +== Changelog + +* *1.6*: The type of the `File` argument was extended. + +== Examples + +.Implement Transport:sendfile using the fallback +[source,erlang] +---- +sendfile(Socket, Filename) -> + sendfile(Socket, Filename, 0, 0, []). + +sendfile(Socket, File, Offset, Bytes) -> + sendfile(Socket, File, Offset, Bytes, []). + +sendfile(Socket, File, Offset, Bytes, Opts) -> + ranch_transport:sendfile(?MODULE, Socket, + File, Offset, Bytes, Opts). +---- + +== See also + +link:man:ranch_transport(3)[ranch_transport(3)] |