org.apache.hadoop.io.nativeio
Class NativeIO

java.lang.Object
  extended by org.apache.hadoop.io.nativeio.NativeIO

public class NativeIO
extends Object

JNI wrappers for various native IO-related calls not available in Java. These functions should generally be used alongside a fallback to another more portable mechanism.


Field Summary
static int O_APPEND
           
static int O_ASYNC
           
static int O_CREAT
           
static int O_EXCL
           
static int O_FSYNC
           
static int O_NDELAY
           
static int O_NOCTTY
           
static int O_NONBLOCK
           
static int O_RDONLY
           
static int O_RDWR
           
static int O_SYNC
           
static int O_TRUNC
           
static int O_WRONLY
           
static int POSIX_FADV_DONTNEED
           
static int POSIX_FADV_NOREUSE
           
static int POSIX_FADV_NORMAL
           
static int POSIX_FADV_RANDOM
           
static int POSIX_FADV_SEQUENTIAL
           
static int POSIX_FADV_WILLNEED
           
static int SYNC_FILE_RANGE_WAIT_AFTER
           
static int SYNC_FILE_RANGE_WAIT_BEFORE
           
static int SYNC_FILE_RANGE_WRITE
           
 
Constructor Summary
NativeIO()
           
 
Method Summary
static void chmod(String path, int mode)
          Wrapper around chmod(2)
static String getOwner(FileDescriptor fd)
           
static boolean isAvailable()
          Return true if the JNI-based native IO extensions are available.
static FileDescriptor open(String path, int flags, int mode)
          Wrapper around open(2)
static void posixFadviseIfPossible(FileDescriptor fd, long offset, long len, int flags)
          Call posix_fadvise on the given file descriptor.
static void syncFileRangeIfPossible(FileDescriptor fd, long offset, long nbytes, int flags)
          Call sync_file_range on the given file descriptor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

O_RDONLY

public static final int O_RDONLY
See Also:
Constant Field Values

O_WRONLY

public static final int O_WRONLY
See Also:
Constant Field Values

O_RDWR

public static final int O_RDWR
See Also:
Constant Field Values

O_CREAT

public static final int O_CREAT
See Also:
Constant Field Values

O_EXCL

public static final int O_EXCL
See Also:
Constant Field Values

O_NOCTTY

public static final int O_NOCTTY
See Also:
Constant Field Values

O_TRUNC

public static final int O_TRUNC
See Also:
Constant Field Values

O_APPEND

public static final int O_APPEND
See Also:
Constant Field Values

O_NONBLOCK

public static final int O_NONBLOCK
See Also:
Constant Field Values

O_SYNC

public static final int O_SYNC
See Also:
Constant Field Values

O_ASYNC

public static final int O_ASYNC
See Also:
Constant Field Values

O_FSYNC

public static final int O_FSYNC
See Also:
Constant Field Values

O_NDELAY

public static final int O_NDELAY
See Also:
Constant Field Values

POSIX_FADV_NORMAL

public static final int POSIX_FADV_NORMAL
See Also:
Constant Field Values

POSIX_FADV_RANDOM

public static final int POSIX_FADV_RANDOM
See Also:
Constant Field Values

POSIX_FADV_SEQUENTIAL

public static final int POSIX_FADV_SEQUENTIAL
See Also:
Constant Field Values

POSIX_FADV_WILLNEED

public static final int POSIX_FADV_WILLNEED
See Also:
Constant Field Values

POSIX_FADV_DONTNEED

public static final int POSIX_FADV_DONTNEED
See Also:
Constant Field Values

POSIX_FADV_NOREUSE

public static final int POSIX_FADV_NOREUSE
See Also:
Constant Field Values

SYNC_FILE_RANGE_WAIT_BEFORE

public static final int SYNC_FILE_RANGE_WAIT_BEFORE
See Also:
Constant Field Values

SYNC_FILE_RANGE_WRITE

public static final int SYNC_FILE_RANGE_WRITE
See Also:
Constant Field Values

SYNC_FILE_RANGE_WAIT_AFTER

public static final int SYNC_FILE_RANGE_WAIT_AFTER
See Also:
Constant Field Values
Constructor Detail

NativeIO

public NativeIO()
Method Detail

isAvailable

public static boolean isAvailable()
Return true if the JNI-based native IO extensions are available.


open

public static FileDescriptor open(String path,
                                  int flags,
                                  int mode)
                           throws IOException
Wrapper around open(2)

Throws:
IOException

chmod

public static void chmod(String path,
                         int mode)
                  throws IOException
Wrapper around chmod(2)

Throws:
IOException

getOwner

public static String getOwner(FileDescriptor fd)
                       throws IOException
Throws:
IOException

posixFadviseIfPossible

public static void posixFadviseIfPossible(FileDescriptor fd,
                                          long offset,
                                          long len,
                                          int flags)
                                   throws NativeIOException
Call posix_fadvise on the given file descriptor. See the manpage for this syscall for more information. On systems where this call is not available, does nothing.

Throws:
NativeIOException - if there is an error with the syscall

syncFileRangeIfPossible

public static void syncFileRangeIfPossible(FileDescriptor fd,
                                           long offset,
                                           long nbytes,
                                           int flags)
                                    throws NativeIOException
Call sync_file_range on the given file descriptor. See the manpage for this syscall for more information. On systems where this call is not available, does nothing.

Throws:
NativeIOException - if there is an error with the syscall


Copyright © 2009 The Apache Software Foundation