< prev index next >
src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java
Print this page
*** 28,37 ****
--- 28,39 ----
import java.io.FileDescriptor;
import java.io.IOException;
import jdk.internal.misc.SharedSecrets;
import jdk.internal.misc.JavaIOFileDescriptorAccess;
import sun.security.action.GetPropertyAction;
+ import java.io.File;
+ import java.nio.CharBuffer;
class FileDispatcherImpl extends FileDispatcher {
private static final JavaIOFileDescriptorAccess fdAccess =
SharedSecrets.getJavaIOFileDescriptorAccess();
*** 121,130 ****
--- 123,147 ----
boolean transferToDirectlyNeedsPositionLock() {
return true;
}
+ int setDirectIO(FileDescriptor fd, String path)
+ {
+ int result = -1;
+ String filePath = path.substring(0, path.lastIndexOf(File.separator));
+ CharBuffer buffer = CharBuffer.allocate(filePath.length());
+ buffer.put(filePath);
+ try {
+ result = setDirect0(fd, buffer);
+ } catch (IOException e) {
+ throw new UnsupportedOperationException
+ ("Error setting up DirectIO", e);
+ }
+ return result;
+ }
+
static boolean isFastFileTransferRequested() {
String fileTransferProp = GetPropertyAction
.privilegedGetProperty("jdk.nio.enableFastFileTransfer");
boolean enable;
if ("".equals(fileTransferProp)) {
*** 175,180 ****
--- 192,199 ----
throws IOException;
static native void close0(FileDescriptor fd) throws IOException;
static native long duplicateHandle(long fd) throws IOException;
+
+ static native int setDirect0(FileDescriptor fd, CharBuffer buffer) throws IOException;
}
< prev index next >