| java.lang.Object ch.ethz.ssh2.sftp.OpenFlags
OpenFlags | public class OpenFlags (Code) | | SFTP Open Flags.
The following table is provided to assist in mapping POSIX semantics
to equivalent SFTP file open parameters:
TODO: This comment should be moved to the open method.
- O_RDONLY
- desired-access = READ_DATA | READ_ATTRIBUTES
- O_WRONLY
- desired-access = WRITE_DATA | WRITE_ATTRIBUTES
- O_RDWR
- desired-access = READ_DATA | READ_ATTRIBUTES | WRITE_DATA | WRITE_ATTRIBUTES
- O_APPEND
- desired-access = WRITE_DATA | WRITE_ATTRIBUTES | APPEND_DATA
- flags = SSH_FXF_ACCESS_APPEND_DATA and or SSH_FXF_ACCESS_APPEND_DATA_ATOMIC
- O_CREAT
- flags = SSH_FXF_OPEN_OR_CREATE
- O_TRUNC
- flags = SSH_FXF_TRUNCATE_EXISTING
- O_TRUNC|O_CREATE
- flags = SSH_FXF_CREATE_TRUNCATE
author: Christian Plattner, plattner@inf.ethz.ch version: $Id: OpenFlags.java,v 1.2 2006/08/02 12:05:00 cplattne Exp $ |
Field Summary | |
final public static int | SSH_FXF_ACCESS_APPEND_DATA Data is always written at the end of the file. | final public static int | SSH_FXF_ACCESS_APPEND_DATA_ATOMIC Data is always written at the end of the file. | final public static int | SSH_FXF_ACCESS_BLOCK_ADVISORY If this bit is set, the above BLOCK modes are advisory. | final public static int | SSH_FXF_ACCESS_BLOCK_DELETE The server MUST guarantee that no other handle has been opened
with ACE4_DELETE access, opened with the
SSH_FXF_ACCESS_DELETE_ON_CLOSE flag set, and that no other handle
will be opened with ACE4_DELETE access or with the
SSH_FXF_ACCESS_DELETE_ON_CLOSE flag set, and that the file itself
is not deleted in any other way until the client closes the handle.
If there is a conflicting lock the server MUST return
SSH_FX_LOCK_CONFLICT. | final public static int | SSH_FXF_ACCESS_BLOCK_READ The server MUST guarantee that no other handle has been opened
with ACE4_READ_DATA access, and that no other handle will be
opened with ACE4_READ_DATA access until the client closes the
handle. | final public static int | SSH_FXF_ACCESS_BLOCK_WRITE The server MUST guarantee that no other handle has been opened
with ACE4_WRITE_DATA or ACE4_APPEND_DATA access, and that no other
handle will be opened with ACE4_WRITE_DATA or ACE4_APPEND_DATA
access until the client closes the handle. | final public static int | SSH_FXF_ACCESS_DELETE_ON_CLOSE The file should be deleted when the last handle to it is closed. | final public static int | SSH_FXF_ACCESS_DISPOSITION Disposition is a 3 bit field that controls how the file is opened. | final public static int | SSH_FXF_ACCESS_NOFOLLOW If the final component of the path is a symlink, then the open
MUST fail, and the error SSH_FX_LINK_LOOP MUST be returned. | final public static int | SSH_FXF_ACCESS_TEXT_MODE Indicates that the server should treat the file as text and
convert it to the canonical newline convention in use.
(See Determining Server Newline Convention in section 5.3 in the
SFTP standard draft).
When a file is opened with this flag, the offset field in the read
and write functions is ignored.
Servers MUST process multiple, parallel reads and writes correctly
in this mode. | final public static int | SSH_FXF_CREATE_NEW A new file is created; if the file already exists, the server
MUST return status SSH_FX_FILE_ALREADY_EXISTS. | final public static int | SSH_FXF_CREATE_TRUNCATE A new file is created; if the file already exists, it is opened
and truncated. | final public static int | SSH_FXF_OPEN_EXISTING An existing file is opened. | final public static int | SSH_FXF_OPEN_OR_CREATE If the file exists, it is opened. | final public static int | SSH_FXF_TRUNCATE_EXISTING An existing file is opened and truncated. |
SSH_FXF_ACCESS_APPEND_DATA | final public static int SSH_FXF_ACCESS_APPEND_DATA(Code) | | Data is always written at the end of the file. The offset field
of the SSH_FXP_WRITE requests are ignored.
Data is not required to be appended atomically. This means that
if multiple writers attempt to append data simultaneously, data
from the first may be lost. However, data MAY be appended
atomically.
|
SSH_FXF_ACCESS_APPEND_DATA_ATOMIC | final public static int SSH_FXF_ACCESS_APPEND_DATA_ATOMIC(Code) | | Data is always written at the end of the file. The offset field
of the SSH_FXP_WRITE requests are ignored.
Data MUST be written atomically so that there is no chance that
multiple appenders can collide and result in data being lost.
If both append flags are specified, the server SHOULD use atomic
append if it is available, but SHOULD use non-atomic appends
otherwise. The server SHOULD NOT fail the request in this case.
|
SSH_FXF_ACCESS_BLOCK_ADVISORY | final public static int SSH_FXF_ACCESS_BLOCK_ADVISORY(Code) | | If this bit is set, the above BLOCK modes are advisory. In advisory
mode, only other accesses that specify a BLOCK mode need be
considered when determining whether the BLOCK can be granted,
and the server need not prevent I/O operations that violate the
block mode.
The server MAY perform mandatory locking even if the BLOCK_ADVISORY
bit is set.
|
SSH_FXF_ACCESS_BLOCK_DELETE | final public static int SSH_FXF_ACCESS_BLOCK_DELETE(Code) | | The server MUST guarantee that no other handle has been opened
with ACE4_DELETE access, opened with the
SSH_FXF_ACCESS_DELETE_ON_CLOSE flag set, and that no other handle
will be opened with ACE4_DELETE access or with the
SSH_FXF_ACCESS_DELETE_ON_CLOSE flag set, and that the file itself
is not deleted in any other way until the client closes the handle.
If there is a conflicting lock the server MUST return
SSH_FX_LOCK_CONFLICT. If the server cannot make the locking
guarantee, it MUST return SSH_FX_OP_UNSUPPORTED.
|
SSH_FXF_ACCESS_BLOCK_READ | final public static int SSH_FXF_ACCESS_BLOCK_READ(Code) | | The server MUST guarantee that no other handle has been opened
with ACE4_READ_DATA access, and that no other handle will be
opened with ACE4_READ_DATA access until the client closes the
handle. (This MUST apply both to other clients and to other
processes on the server.)
If there is a conflicting lock the server MUST return
SSH_FX_LOCK_CONFLICT. If the server cannot make the locking
guarantee, it MUST return SSH_FX_OP_UNSUPPORTED.
Other handles MAY be opened for ACE4_WRITE_DATA or any other
combination of accesses, as long as ACE4_READ_DATA is not included
in the mask.
|
SSH_FXF_ACCESS_BLOCK_WRITE | final public static int SSH_FXF_ACCESS_BLOCK_WRITE(Code) | | The server MUST guarantee that no other handle has been opened
with ACE4_WRITE_DATA or ACE4_APPEND_DATA access, and that no other
handle will be opened with ACE4_WRITE_DATA or ACE4_APPEND_DATA
access until the client closes the handle. (This MUST apply both
to other clients and to other processes on the server.)
If there is a conflicting lock the server MUST return
SSH_FX_LOCK_CONFLICT. If the server cannot make the locking
guarantee, it MUST return SSH_FX_OP_UNSUPPORTED.
Other handles MAY be opened for ACE4_READ_DATA or any other
combination of accesses, as long as neither ACE4_WRITE_DATA nor
ACE4_APPEND_DATA are included in the mask.
|
SSH_FXF_ACCESS_DELETE_ON_CLOSE | final public static int SSH_FXF_ACCESS_DELETE_ON_CLOSE(Code) | | The file should be deleted when the last handle to it is closed.
(The last handle may not be an sftp-handle.) This MAY be emulated
by a server if the OS doesn't support it by deleting the file when
this handle is closed.
It is implementation specific whether the directory entry is
removed immediately or when the handle is closed.
|
SSH_FXF_ACCESS_DISPOSITION | final public static int SSH_FXF_ACCESS_DISPOSITION(Code) | | Disposition is a 3 bit field that controls how the file is opened.
The server MUST support these bits (possible enumaration values:
SSH_FXF_CREATE_NEW, SSH_FXF_CREATE_TRUNCATE, SSH_FXF_OPEN_EXISTING,
SSH_FXF_OPEN_OR_CREATE or SSH_FXF_TRUNCATE_EXISTING).
|
SSH_FXF_ACCESS_NOFOLLOW | final public static int SSH_FXF_ACCESS_NOFOLLOW(Code) | | If the final component of the path is a symlink, then the open
MUST fail, and the error SSH_FX_LINK_LOOP MUST be returned.
|
SSH_FXF_ACCESS_TEXT_MODE | final public static int SSH_FXF_ACCESS_TEXT_MODE(Code) | | Indicates that the server should treat the file as text and
convert it to the canonical newline convention in use.
(See Determining Server Newline Convention in section 5.3 in the
SFTP standard draft).
When a file is opened with this flag, the offset field in the read
and write functions is ignored.
Servers MUST process multiple, parallel reads and writes correctly
in this mode. Naturally, it is permissible for them to do this by
serializing the requests.
Clients SHOULD use the SSH_FXF_ACCESS_APPEND_DATA flag to append
data to a text file rather then using write with a calculated offset.
|
SSH_FXF_CREATE_NEW | final public static int SSH_FXF_CREATE_NEW(Code) | | A new file is created; if the file already exists, the server
MUST return status SSH_FX_FILE_ALREADY_EXISTS.
|
SSH_FXF_CREATE_TRUNCATE | final public static int SSH_FXF_CREATE_TRUNCATE(Code) | | A new file is created; if the file already exists, it is opened
and truncated.
|
SSH_FXF_OPEN_EXISTING | final public static int SSH_FXF_OPEN_EXISTING(Code) | | An existing file is opened. If the file does not exist, the
server MUST return SSH_FX_NO_SUCH_FILE. If a directory in the
path does not exist, the server SHOULD return
SSH_FX_NO_SUCH_PATH. It is also acceptable if the server
returns SSH_FX_NO_SUCH_FILE in this case.
|
SSH_FXF_OPEN_OR_CREATE | final public static int SSH_FXF_OPEN_OR_CREATE(Code) | | If the file exists, it is opened. If the file does not exist,
it is created.
|
SSH_FXF_TRUNCATE_EXISTING | final public static int SSH_FXF_TRUNCATE_EXISTING(Code) | | An existing file is opened and truncated. If the file does not
exist, the server MUST return the same error codes as defined
for SSH_FXF_OPEN_EXISTING.
|
|
|