Top Description Inners Fields Constructors Methods
org.jruby.util.io

public Class FilenoUtil

extends Object
Class Inheritance
Imports
com.headius.backport9.modules.Module, .Modules, jnr.constants.platform.Fcntl, jnr.enxio.channels.NativeSelectableChannel, jnr.ffi.LibraryLoader, .Pointer, jnr.posix.FileStat, .HANDLE, .JavaLibCHelper, .POSIX, jnr.unixsocket.UnixServerSocketChannel, .UnixSocketChannel, org.jruby.javasupport.JavaUtil, org.jruby.platform.Platform, org.jruby.runtime.Helpers, org.jruby.util.cli.Options, org.jruby.util.collections.NonBlockingHashMapLong, org.jruby.util.log.Logger, .LoggerFactory, java.io.FileDescriptor, java.lang.invoke.MethodHandle, .MethodHandles, java.lang.reflect.Field, .Method, java.nio.channels.Channel, java.util.concurrent.atomic.AtomicInteger, java.util.function.Function, .ObjIntConsumer, .Predicate, .ToIntFunction

Utilities for working with native fileno and Java structures that wrap them.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
public static interface

Field Summary

Modifier and TypeField and Description
private final NonBlockingHashMapLong<ChannelFD>
public static final int
protected final AtomicInteger
pack-priv static final Logger
private final POSIX
private final FilenoUtil.WinC

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public int
public static int
public static int
public int
filenoFromHandleIn(Channel channel, int flags)

public static FileDescriptor
private static int
private static HANDLE
public int
public int
public ChannelFD
private static HANDLE
public static boolean
isFake(int fileno)

public void
registerWrapper(int fileno, ChannelFD wrapper)

public void
unregisterWrapper(int fileno)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

filenoMapback to summary
private final NonBlockingHashMapLong<ChannelFD> filenoMap
FIRST_FAKE_FDback to summary
public static final int FIRST_FAKE_FD
internalFilenoIndexback to summary
protected final AtomicInteger internalFilenoIndex
LOGback to summary
pack-priv static final Logger LOG
posixback to summary
private final POSIX posix
wincback to summary
private final FilenoUtil.WinC winc

Constructor Detail

FilenoUtilback to summary
public FilenoUtil(POSIX posix)

Method Detail

closeFilenoHandleback to summary
public int closeFilenoHandle(int fd)
filenoFromback to summary
public static int filenoFrom(Channel channel)
filenoFromback to summary
public static int filenoFrom(FileDescriptor fd)
filenoFromHandleInback to summary
public int filenoFromHandleIn(Channel channel, int flags)
getDescriptorFromChannelback to summary
public static FileDescriptor getDescriptorFromChannel(Channel channel)
getFilenoUsingReflectionback to summary
private static int getFilenoUsingReflection(Channel channel)
getHandleUsingReflectionback to summary
private static HANDLE getHandleUsingReflection(Channel channel)
getNewFilenoback to summary
public int getNewFileno()
getNumberOfWrappersback to summary
public int getNumberOfWrappers()
getWrapperFromFilenoback to summary
public ChannelFD getWrapperFromFileno(int fileno)
handleFromback to summary
private static HANDLE handleFrom(Channel channel)
isFakeback to summary
public static boolean isFake(int fileno)
registerWrapperback to summary
public void registerWrapper(int fileno, ChannelFD wrapper)
unregisterWrapperback to summary
public void unregisterWrapper(int fileno)
org.jruby.util.io back to summary

private Class FilenoUtil.ReflectiveAccess

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private static final Predicate<Object>
private static final Function<Object, FileDescriptor>
private static final MethodHandle
private static final ToIntFunction<FileDescriptor>
private static final MethodHandle
private static final ObjIntConsumer<FileDescriptor>
private static final MethodHandle
private static final MethodHandles.Lookup
private static final Predicate<Object>
private static final Function<Object, FileDescriptor>
private static final MethodHandle

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static FileDescriptor
private static int
private static void
private static FileDescriptor
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

FILE_CHANNEL_IMPLback to summary
private static final Predicate<Object> FILE_CHANNEL_IMPL
FILE_CHANNEL_IMPL_GET_FDback to summary
private static final Function<Object, FileDescriptor> FILE_CHANNEL_IMPL_GET_FD
FILE_CHANNEL_IMPL_GET_FD_HANDLEback to summary
private static final MethodHandle FILE_CHANNEL_IMPL_GET_FD_HANDLE
FILE_DESCRIPTOR_GET_FILENOback to summary
private static final ToIntFunction<FileDescriptor> FILE_DESCRIPTOR_GET_FILENO
FILE_DESCRIPTOR_GET_FILENO_HANDLEback to summary
private static final MethodHandle FILE_DESCRIPTOR_GET_FILENO_HANDLE
FILE_DESCRIPTOR_SET_FILENOback to summary
private static final ObjIntConsumer<FileDescriptor> FILE_DESCRIPTOR_SET_FILENO
FILE_DESCRIPTOR_SET_FILENO_HANDLEback to summary
private static final MethodHandle FILE_DESCRIPTOR_SET_FILENO_HANDLE
LOOKUPback to summary
private static final MethodHandles.Lookup LOOKUP
SEL_CH_IMPLback to summary
private static final Predicate<Object> SEL_CH_IMPL
SEL_CH_IMPL_GET_FDback to summary
private static final Function<Object, FileDescriptor> SEL_CH_IMPL_GET_FD
SEL_CH_IMPL_GET_FD_HANDLEback to summary
private static final MethodHandle SEL_CH_IMPL_GET_FD_HANDLE

Constructor Detail

ReflectiveAccessback to summary
private ReflectiveAccess()

Method Detail

fileChannelImplGetFDback to summary
private static FileDescriptor fileChannelImplGetFD(Object obj)
fileDescriptorGetFilenoback to summary
private static int fileDescriptorGetFileno(FileDescriptor obj)
fileDescriptorSetFilenoback to summary
private static void fileDescriptorSetFileno(FileDescriptor obj, int i)
selChImplGetFDback to summary
private static FileDescriptor selChImplGetFD(Object obj)
org.jruby.util.io back to summary

public Interface FilenoUtil.WinC


Method Summary

Modifier and TypeMethod and Description
public int
_close(int fd)

public int
_open_osfhandle(Pointer hndl, int flgs)

Method Detail

_closeback to summary
public int _close(int fd)
_open_osfhandleback to summary
public int _open_osfhandle(Pointer hndl, int flgs)