1 /* class: java/io/RandomAccessFile */
4 * Class: java/io/RandomAccessFile
8 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_close ( JNIEnv *env , struct java_io_RandomAccessFile* this)
10 if (this->fd->fd >= 0) {
11 s4 r = close (this->fd->fd);
14 exceptionptr = native_new_and_init (class_java_io_IOException);
19 * Class: java/io/RandomAccessFile
20 * Method: getFilePointer
23 JNIEXPORT s8 JNICALL Java_java_io_RandomAccessFile_getFilePointer ( JNIEnv *env , struct java_io_RandomAccessFile* this)
25 s4 p = lseek (this->fd->fd, 0, SEEK_CUR);
26 if (p>=0) return builtin_i2l(p);
27 exceptionptr = native_new_and_init (class_java_io_IOException);
28 return builtin_i2l(0);
32 * Class: java/io/RandomAccessFile
36 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_initIDs ( JNIEnv *env )
42 * Class: java/io/RandomAccessFile
46 JNIEXPORT s8 JNICALL Java_java_io_RandomAccessFile_length ( JNIEnv *env , struct java_io_RandomAccessFile* this)
49 s4 r = fstat(this->fd->fd, &buffer);
50 if (r>=0) return builtin_i2l(buffer.st_size);
51 exceptionptr = native_new_and_init (class_java_io_IOException);
52 return builtin_i2l(0);
56 * Class: java/io/RandomAccessFile
58 * Signature: (Ljava/lang/String;Z)V
60 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_open ( JNIEnv *env , struct java_io_RandomAccessFile* this, struct java_lang_String* name, s4 writeable)
63 char *fname = javastring_tochar ((java_objectheader*)name);
65 if (writeable) fd = open (fname, O_RDWR|O_CREAT|O_TRUNC, 0666);
66 else fd = open (fname, O_RDONLY, 0);
67 if (fd==-1) goto fail;
69 threadedFileDescriptor(fd);
75 exceptionptr = native_new_and_init (class_java_io_FileNotFoundException);
80 * Class: java/io/RandomAccessFile
84 JNIEXPORT s4 JNICALL Java_java_io_RandomAccessFile_read ( JNIEnv *env , struct java_io_RandomAccessFile* this)
88 r = threadedRead (this->fd->fd, (char *) buffer, 1);
89 if (r>0) return buffer[1];
91 exceptionptr = native_new_and_init (class_java_io_IOException);
96 * Class: java/io/RandomAccessFile
100 JNIEXPORT s4 JNICALL Java_java_io_RandomAccessFile_readBytes ( JNIEnv *env , struct java_io_RandomAccessFile* this, java_bytearray* buffer, s4 start, s4 len)
102 s4 r = threadedRead (this->fd->fd, (char *) buffer->data+start, len);
105 exceptionptr = native_new_and_init (class_java_io_IOException);
110 * Class: java/io/RandomAccessFile
114 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_seek ( JNIEnv *env , struct java_io_RandomAccessFile* this, s8 offset)
116 s4 p = lseek (this->fd->fd, builtin_l2i(offset), SEEK_SET);
118 exceptionptr = native_new_and_init (class_java_io_IOException);
123 * Class: java/io/RandomAccessFile
127 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_setLength ( JNIEnv *env , struct java_io_RandomAccessFile* this, s8 length)
129 if (ftruncate(this->fd->fd, length)<0)
130 exceptionptr = native_new_and_init (class_java_io_IOException);
134 * Class: java/io/RandomAccessFile
138 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_write ( JNIEnv *env , struct java_io_RandomAccessFile* this, s4 byte)
143 r = write (this->fd->fd, buffer, 1);
145 exceptionptr = native_new_and_init (class_java_io_IOException);
150 * Class: java/io/RandomAccessFile
154 JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_writeBytes ( JNIEnv *env , struct java_io_RandomAccessFile* this, java_bytearray* buffer, s4 start, s4 len)
159 o = threadedWrite (this->fd->fd, (char *) buffer->data+start, len);
160 if (o!=len) exceptionptr = native_new_and_init (class_java_io_IOException);