Current section
Files
Jump to
Current section
Files
src/gftp@internal@data_channel.erl
-module(gftp@internal@data_channel).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gftp/internal/data_channel.gleam").
-export([open_retr/2, open_stor/2, open_appe/2, open_list/2, open_nlst/2, open_mlsd/2, open_data_command/3, close_data_channel/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/gftp/internal/data_channel.gleam", 15).
?DOC(false).
-spec open_retr(gftp:ftp_client(), binary()) -> {ok, gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_retr(Ftp_client, Path) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {retr, Path}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 30).
?DOC(false).
-spec open_stor(gftp:ftp_client(), binary()) -> {ok, gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_stor(Ftp_client, Path) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {stor, Path}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 45).
?DOC(false).
-spec open_appe(gftp:ftp_client(), binary()) -> {ok, gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_appe(Ftp_client, Path) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {appe, Path}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 60).
?DOC(false).
-spec open_list(gftp:ftp_client(), gleam@option:option(binary())) -> {ok,
gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_list(Ftp_client, Pathname) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {list, Pathname}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 78).
?DOC(false).
-spec open_nlst(gftp:ftp_client(), gleam@option:option(binary())) -> {ok,
gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_nlst(Ftp_client, Pathname) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {nlst, Pathname}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 96).
?DOC(false).
-spec open_mlsd(gftp:ftp_client(), gleam@option:option(binary())) -> {ok,
gftp@stream:data_stream()} |
{error, gftp@result:ftp_error()}.
open_mlsd(Ftp_client, Pathname) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {mlsd, Pathname}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, [about_to_send, already_open]),
fun(_) -> {ok, Data_stream} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 114).
?DOC(false).
-spec open_data_command(gftp:ftp_client(), binary(), list(gftp@status:status())) -> {ok,
{gftp@stream:data_stream(), gftp@response:response()}} |
{error, gftp@result:ftp_error()}.
open_data_command(Ftp_client, Command_str, Expected_statuses) ->
gleam@result:'try'(
gftp:data_command(Ftp_client, {custom, Command_str}),
fun(Data_stream) ->
gleam@result:'try'(
gftp:read_response_in(Ftp_client, Expected_statuses),
fun(Response) -> {ok, {Data_stream, Response}} end
)
end
).
-file("src/gftp/internal/data_channel.gleam", 131).
?DOC(false).
-spec close_data_channel(gftp:ftp_client(), gftp@stream:data_stream()) -> {ok,
nil} |
{error, gftp@result:ftp_error()}.
close_data_channel(Ftp_client, Data_stream) ->
gftp:finalize_data_command(Ftp_client, Data_stream).