src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java
author ohair
Tue Dec 28 15:53:50 2010 -0800 (16 months ago)
changeset 3261 a06412e13bf7
parent 3202374cc848d797
permissions -rw-r--r--
6962318: Update copyright year
Reviewed-by: xdono
        1 /*
        2  * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
        3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
        4  *
        5  * This code is free software; you can redistribute it and/or modify it
        6  * under the terms of the GNU General Public License version 2 only, as
        7  * published by the Free Software Foundation.  Oracle designates this
        8  * particular file as subject to the "Classpath" exception as provided
        9  * by Oracle in the LICENSE file that accompanied this code.
       10  *
       11  * This code is distributed in the hope that it will be useful, but WITHOUT
       12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       14  * version 2 for more details (a copy is included in the LICENSE file that
       15  * accompanied this code).
       16  *
       17  * You should have received a copy of the GNU General Public License version
       18  * 2 along with this work; if not, write to the Free Software Foundation,
       19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       20  *
       21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       22  * or visit www.oracle.com if you need additional information or have any
       23  * questions.
       24  */
       25 
       26 package sun.nio.ch;
       27 
       28 import java.io.*;
       29 
       30 class FileDispatcherImpl extends FileDispatcher
       31 {
       32 
       33     static {
       34         Util.load();
       35         init();
       36     }
       37 
       38     FileDispatcherImpl(boolean append) {
       39         /* append is ignored */
       40     }
       41 
       42     FileDispatcherImpl() {
       43     }
       44 
       45     int read(FileDescriptor fd, long address, int len) throws IOException {
       46         return read0(fd, address, len);
       47     }
       48 
       49     int pread(FileDescriptor fd, long address, int len,
       50                              long position, Object lock) throws IOException {
       51         return pread0(fd, address, len, position);
       52     }
       53 
       54     long readv(FileDescriptor fd, long address, int len) throws IOException {
       55         return readv0(fd, address, len);
       56     }
       57 
       58     int write(FileDescriptor fd, long address, int len) throws IOException {
       59         return write0(fd, address, len);
       60     }
       61 
       62     int pwrite(FileDescriptor fd, long address, int len,
       63                              long position, Object lock) throws IOException
       64     {
       65         return pwrite0(fd, address, len, position);
       66     }
       67 
       68     long writev(FileDescriptor fd, long address, int len)
       69         throws IOException
       70     {
       71         return writev0(fd, address, len);
       72     }
       73 
       74     int force(FileDescriptor fd, boolean metaData) throws IOException {
       75         return force0(fd, metaData);
       76     }
       77 
       78     int truncate(FileDescriptor fd, long size) throws IOException {
       79         return truncate0(fd, size);
       80     }
       81 
       82     long size(FileDescriptor fd) throws IOException {
       83         return size0(fd);
       84     }
       85 
       86     int lock(FileDescriptor fd, boolean blocking, long pos, long size,
       87              boolean shared) throws IOException
       88     {
       89         return lock0(fd, blocking, pos, size, shared);
       90     }
       91 
       92     void release(FileDescriptor fd, long pos, long size) throws IOException {
       93         release0(fd, pos, size);
       94     }
       95 
       96     void close(FileDescriptor fd) throws IOException {
       97         close0(fd);
       98     }
       99 
      100     void preClose(FileDescriptor fd) throws IOException {
      101         preClose0(fd);
      102     }
      103 
      104     FileDescriptor duplicateForMapping(FileDescriptor fd) {
      105         // file descriptor not required for mapping operations; okay
      106         // to return invalid file descriptor.
      107         return new FileDescriptor();
      108     }
      109 
      110     // -- Native methods --
      111 
      112     static native int read0(FileDescriptor fd, long address, int len)
      113         throws IOException;
      114 
      115     static native int pread0(FileDescriptor fd, long address, int len,
      116                              long position) throws IOException;
      117 
      118     static native long readv0(FileDescriptor fd, long address, int len)
      119         throws IOException;
      120 
      121     static native int write0(FileDescriptor fd, long address, int len)
      122         throws IOException;
      123 
      124     static native int pwrite0(FileDescriptor fd, long address, int len,
      125                              long position) throws IOException;
      126 
      127     static native long writev0(FileDescriptor fd, long address, int len)
      128         throws IOException;
      129 
      130     static native int force0(FileDescriptor fd, boolean metaData)
      131         throws IOException;
      132 
      133     static native int truncate0(FileDescriptor fd, long size)
      134         throws IOException;
      135 
      136     static native long size0(FileDescriptor fd) throws IOException;
      137 
      138     static native int lock0(FileDescriptor fd, boolean blocking, long pos,
      139                             long size, boolean shared) throws IOException;
      140 
      141     static native void release0(FileDescriptor fd, long pos, long size)
      142         throws IOException;
      143 
      144     static native void close0(FileDescriptor fd) throws IOException;
      145 
      146     static native void preClose0(FileDescriptor fd) throws IOException;
      147 
      148     static native void closeIntFD(int fd) throws IOException;
      149 
      150     static native void init();
      151 
      152 }