1%%
2%% %CopyrightBegin%
3%%
4%% Copyright Ericsson AB 2007-2017. All Rights Reserved.
5%%
6%% Licensed under the Apache License, Version 2.0 (the "License");
7%% you may not use this file except in compliance with the License.
8%% You may obtain a copy of the License at
9%%
10%%     http://www.apache.org/licenses/LICENSE-2.0
11%%
12%% Unless required by applicable law or agreed to in writing, software
13%% distributed under the License is distributed on an "AS IS" BASIS,
14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15%% See the License for the specific language governing permissions and
16%% limitations under the License.
17%%
18%% %CopyrightEnd%
19%%
20
21%%
22
23-module(ssh_sftpd_file_api).
24
25%% To be further specified later
26-callback close(file:io_device(), State::term()) ->
27    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
28-callback delete(file:name(), State::term()) ->
29    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
30-callback del_dir(file:name(), State::term()) ->
31    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
32-callback get_cwd(State::term()) ->
33    {{ok, Dir::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
34-callback is_dir(file:name(), State::term()) ->
35    {boolean(), State::term()}.
36-callback list_dir(file:name(), State::term()) ->
37    {{ok, Filenames::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
38-callback make_dir(Dir::term(), State::term()) ->
39    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
40-callback make_symlink(Path2::term(), Path::term(), State::term()) ->
41    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
42-callback open(Path::term(), Flags::term(), State::term()) ->
43    {{ok, IoDevice::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
44-callback position(file:io_device(), Offs::term(), State::term()) ->
45    {{ok, NewPosition::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
46-callback read(file:io_device(), Len::term(), State::term()) ->
47    {{ok, Data::term()},State::term()} | {eof, State::term()} | {{error, Reason::term()}, State::term()}.
48-callback read_link(file:name(), State::term()) ->
49    {{ok, FileName::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
50-callback read_link_info(file:name(), State::term()) ->
51    {{ok, FileInfo::term()}, State::term()} | {{error, Reason::term()}, State::term()}.
52-callback read_file_info(file:name(), State::term()) ->
53    {{ok, FileInfo::term()}, State::term()} | {{error, Reason::term()},State::term()}.
54-callback rename(file:name(), file:name(), State::term()) ->
55    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
56-callback write(file:io_device(), Data::term(), State::term()) ->
57    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
58-callback write_file_info(file:name(),Info::term(), State::term()) ->
59    {ok, State::term()} | {{error, Reason::term()}, State::term()}.
60
61
62
63