Class FileDescriptor
java.lang.Object
io.netty.channel.unix.FileDescriptor
- Direct Known Subclasses:
Socket
public class FileDescriptor
extends java.lang.Object
Native
FileDescriptor implementation which allows to wrap an int and provide a
FileDescriptor for it.-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final int(package private) intBit map = [Output Shutdown | Input Shutdown | Closed]private static final intprivate static final intprivate static final intprivate static final intprivate static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<FileDescriptor> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) final booleancasState(int expected, int update) voidclose()Close the file descriptor.private static intclose(int fd) booleanequals(java.lang.Object o) static FileDescriptorfrom(java.io.File file) Open a newFileDescriptorfor the givenFile, write-only.static FileDescriptorfrom(java.lang.String path) Open a newFileDescriptorfor the given path, write-only.inthashCode()(package private) static intinputShutdown(int state) final intintValue()Return the int value of the filedescriptor.(package private) static booleanisClosed(int state) (package private) static booleanisInputShutdown(int state) booleanisOpen()Returnstrueif the file descriptor is open.(package private) static booleanisOutputShutdown(int state) protected booleanprivate static longnewPipe()private static intopen(java.lang.String path) (package private) static intoutputShutdown(int state) static FileDescriptor[]pipe()private static intread(int fd, java.nio.ByteBuffer buf, int pos, int limit) final intread(java.nio.ByteBuffer buf, int pos, int limit) private static intreadAddress(int fd, long address, int pos, int limit) final intreadAddress(long address, int pos, int limit) java.lang.StringtoString()private static intwrite(int fd, java.nio.ByteBuffer buf, int pos, int limit) final intwrite(java.nio.ByteBuffer buf, int pos, int limit) private static intwriteAddress(int fd, long address, int pos, int limit) final intwriteAddress(long address, int pos, int limit) private static longwritev(int fd, java.nio.ByteBuffer[] buffers, int offset, int length, long maxBytesToWrite) final longwritev(java.nio.ByteBuffer[] buffers, int offset, int length, long maxBytesToWrite) private static longwritevAddresses(int fd, long memoryAddress, int length) final longwritevAddresses(long memoryAddress, int length) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Field Details
-
stateUpdater
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<FileDescriptor> stateUpdater -
STATE_CLOSED_MASK
private static final int STATE_CLOSED_MASK- See Also:
-
STATE_INPUT_SHUTDOWN_MASK
private static final int STATE_INPUT_SHUTDOWN_MASK- See Also:
-
STATE_OUTPUT_SHUTDOWN_MASK
private static final int STATE_OUTPUT_SHUTDOWN_MASK- See Also:
-
STATE_ALL_MASK
private static final int STATE_ALL_MASK- See Also:
-
state
volatile int stateBit map = [Output Shutdown | Input Shutdown | Closed] -
fd
final int fd
-
-
Constructor Details
-
FileDescriptor
public FileDescriptor(int fd)
-
-
Method Details
-
intValue
public final int intValue()Return the int value of the filedescriptor. -
markClosed
protected boolean markClosed() -
close
public void close() throws java.io.IOExceptionClose the file descriptor.- Throws:
java.io.IOException
-
isOpen
public boolean isOpen()Returnstrueif the file descriptor is open. -
write
public final int write(java.nio.ByteBuffer buf, int pos, int limit) throws java.io.IOException - Throws:
java.io.IOException
-
writeAddress
public final int writeAddress(long address, int pos, int limit) throws java.io.IOException - Throws:
java.io.IOException
-
writev
public final long writev(java.nio.ByteBuffer[] buffers, int offset, int length, long maxBytesToWrite) throws java.io.IOException - Throws:
java.io.IOException
-
writevAddresses
public final long writevAddresses(long memoryAddress, int length) throws java.io.IOException - Throws:
java.io.IOException
-
read
public final int read(java.nio.ByteBuffer buf, int pos, int limit) throws java.io.IOException - Throws:
java.io.IOException
-
readAddress
public final int readAddress(long address, int pos, int limit) throws java.io.IOException - Throws:
java.io.IOException
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o) - Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCodein classjava.lang.Object
-
from
Open a newFileDescriptorfor the given path, write-only.WARNING: if
pathalready exists it is truncated to zero length; if it does not exist it is created with mode0666 & ~umask. Do not pass untrusted or externally-derived paths to this method.- Throws:
java.io.IOException
-
from
Open a newFileDescriptorfor the givenFile, write-only.WARNING: see
from(String): an existing file is truncated and a missing one is created.- Throws:
java.io.IOException
-
pipe
- Returns:
- [0] = read end, [1] = write end
- Throws:
java.io.IOException
-
casState
final boolean casState(int expected, int update) -
isClosed
static boolean isClosed(int state) -
isInputShutdown
static boolean isInputShutdown(int state) -
isOutputShutdown
static boolean isOutputShutdown(int state) -
inputShutdown
static int inputShutdown(int state) -
outputShutdown
static int outputShutdown(int state) -
open
private static int open(java.lang.String path) -
close
private static int close(int fd) -
write
private static int write(int fd, java.nio.ByteBuffer buf, int pos, int limit) -
writeAddress
private static int writeAddress(int fd, long address, int pos, int limit) -
writev
private static long writev(int fd, java.nio.ByteBuffer[] buffers, int offset, int length, long maxBytesToWrite) -
writevAddresses
private static long writevAddresses(int fd, long memoryAddress, int length) -
read
private static int read(int fd, java.nio.ByteBuffer buf, int pos, int limit) -
readAddress
private static int readAddress(int fd, long address, int pos, int limit) -
newPipe
private static long newPipe()
-