@ThreadSafe public class FuseFileInOrOutStream extends Object implements FuseFileStream
FuseFileStream
for read only or write only workloads.
Fuse can open file for reading and writing concurrently but Alluxio only support
read-only or write-only workloads. This class will be used as write only stream
if O_TRUNC flag is provided or first operation is write() or truncate(),
will be used as read only stream otherwise.FuseFileStream.Factory
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the stream.
|
static FuseFileInOrOutStream |
create(FileSystem fileSystem,
AuthPolicy authPolicy,
AlluxioURI uri,
int flags,
long mode,
Optional<URIStatus> status)
Creates a
FuseFileInOrOutStream . |
void |
flush()
Flushes the stream.
|
long |
getFileLength()
Gets the file length.
|
int |
read(ByteBuffer buf,
long size,
long offset)
Reads data from the stream.
|
void |
truncate(long size)
Truncates the file to the given size.
|
void |
write(ByteBuffer buf,
long size,
long offset)
Writes data to the stream.
|
public static FuseFileInOrOutStream create(FileSystem fileSystem, AuthPolicy authPolicy, AlluxioURI uri, int flags, long mode, Optional<URIStatus> status)
FuseFileInOrOutStream
.fileSystem
- the Alluxio file systemauthPolicy
- the Authentication policyuri
- the alluxio uriflags
- the fuse create/open flagsmode
- the filesystem mode, -1 if not setstatus
- the uri status, null if not uri does not existFuseFileInOrOutStream
public int read(ByteBuffer buf, long size, long offset)
FuseFileStream
read
in interface FuseFileStream
buf
- the byte buffer to read data tosize
- the size to readoffset
- the offset of the target stream to begin readingpublic void write(ByteBuffer buf, long size, long offset)
FuseFileStream
write
in interface FuseFileStream
buf
- the byte buffer to read data from and write to the streamsize
- the size to writeoffset
- the offset to writepublic long getFileLength()
FuseFileStream
getFileLength
in interface FuseFileStream
public void flush()
FuseFileStream
flush
in interface FuseFileStream
public void truncate(long size)
FuseFileStream
truncate
in interface FuseFileStream
size
- the truncate sizepublic void close()
FuseFileStream
close
in interface FuseFileStream
close
in interface AutoCloseable
Copyright © 2023. All Rights Reserved.