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.


Nested Class Summary
static class NativeIO.Stat
          Result type of the fstat call
 
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 NativeIO.Stat fstat(FileDescriptor fd)
          Wrapper around fstat(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

fstat

public static NativeIO.Stat fstat(FileDescriptor fd)
                           throws IOException
Wrapper around fstat(2)

Throws:
IOException

chmod

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

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

getOwner

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


Copyright © 2009 The Apache Software Foundation