src/share/native/java/io/RandomAccessFile.c

Print this page
rev 10457 : 8054720: Modifications of I/O methods for instrumentation purposes
Summary: Wrap some native methods in Java methods and change native method names to a consistent form.
Reviewed-by: TBD


  30 
  31 #include "io_util.h"
  32 #include "io_util_md.h"
  33 #include "java_io_RandomAccessFile.h"
  34 
  35 #include <fcntl.h>
  36 
  37 /*
  38  * static method to store field ID's in initializers
  39  */
  40 
  41 jfieldID raf_fd; /* id for jobject 'fd' in java.io.RandomAccessFile */
  42 
  43 JNIEXPORT void JNICALL
  44 Java_java_io_RandomAccessFile_initIDs(JNIEnv *env, jclass fdClass) {
  45     raf_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
  46 }
  47 
  48 
  49 JNIEXPORT void JNICALL
  50 Java_java_io_RandomAccessFile_open(JNIEnv *env,
  51                                    jobject this, jstring path, jint mode)
  52 {
  53     int flags = 0;
  54     if (mode & java_io_RandomAccessFile_O_RDONLY)
  55         flags = O_RDONLY;
  56     else if (mode & java_io_RandomAccessFile_O_RDWR) {
  57         flags = O_RDWR | O_CREAT;
  58         if (mode & java_io_RandomAccessFile_O_SYNC)
  59             flags |= O_SYNC;
  60         else if (mode & java_io_RandomAccessFile_O_DSYNC)
  61             flags |= O_DSYNC;
  62     }
  63     fileOpen(env, this, path, raf_fd, flags);
  64 }
  65 
  66 JNIEXPORT jint JNICALL
  67 Java_java_io_RandomAccessFile_read0(JNIEnv *env, jobject this) {
  68     return readSingle(env, this, raf_fd);
  69 }
  70 




  30 
  31 #include "io_util.h"
  32 #include "io_util_md.h"
  33 #include "java_io_RandomAccessFile.h"
  34 
  35 #include <fcntl.h>
  36 
  37 /*
  38  * static method to store field ID's in initializers
  39  */
  40 
  41 jfieldID raf_fd; /* id for jobject 'fd' in java.io.RandomAccessFile */
  42 
  43 JNIEXPORT void JNICALL
  44 Java_java_io_RandomAccessFile_initIDs(JNIEnv *env, jclass fdClass) {
  45     raf_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
  46 }
  47 
  48 
  49 JNIEXPORT void JNICALL
  50 Java_java_io_RandomAccessFile_open0(JNIEnv *env,
  51                                     jobject this, jstring path, jint mode)
  52 {
  53     int flags = 0;
  54     if (mode & java_io_RandomAccessFile_O_RDONLY)
  55         flags = O_RDONLY;
  56     else if (mode & java_io_RandomAccessFile_O_RDWR) {
  57         flags = O_RDWR | O_CREAT;
  58         if (mode & java_io_RandomAccessFile_O_SYNC)
  59             flags |= O_SYNC;
  60         else if (mode & java_io_RandomAccessFile_O_DSYNC)
  61             flags |= O_DSYNC;
  62     }
  63     fileOpen(env, this, path, raf_fd, flags);
  64 }
  65 
  66 JNIEXPORT jint JNICALL
  67 Java_java_io_RandomAccessFile_read0(JNIEnv *env, jobject this) {
  68     return readSingle(env, this, raf_fd);
  69 }
  70