diff --git a/include/reader.h b/include/reader.h index cbeaaad2a..94c108f9d 100644 --- a/include/reader.h +++ b/include/reader.h @@ -56,8 +56,10 @@ class Reader * (.zim extesion). */ explicit Reader(const string zimFilePath); +#ifndef _WIN32 explicit Reader(int fd); Reader(int fd, zim::offset_type offset, zim::size_type size); +#endif ~Reader() = default; /** diff --git a/src/reader.cpp b/src/reader.cpp index 0278b5033..523c1f766 100644 --- a/src/reader.cpp +++ b/src/reader.cpp @@ -86,6 +86,7 @@ Reader::Reader(const string zimFilePath) srand(time(nullptr)); } +#ifndef _WIN32 Reader::Reader(int fd) : zimArchive(new zim::Archive(fd)), zimFilePath("") @@ -101,6 +102,7 @@ Reader::Reader(int fd, zim::offset_type offset, zim::size_type size) /* initialize random seed: */ srand(time(nullptr)); } +#endif // #ifndef _WIN32 zim::Archive* Reader::getZimArchive() const { diff --git a/src/wrapper/java/kiwixreader.cpp b/src/wrapper/java/kiwixreader.cpp index b7f968822..cc3c27706 100644 --- a/src/wrapper/java/kiwixreader.cpp +++ b/src/wrapper/java/kiwixreader.cpp @@ -68,6 +68,7 @@ int jni2fd(const jobject& fdObj, JNIEnv* env) JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderByFD( JNIEnv* env, jobject obj, jobject fdObj) { +#ifndef _WIN32 int fd = jni2fd(fdObj, env); LOG("Attempting to create reader with fd: %d", fd); @@ -80,11 +81,17 @@ JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderBy LOG(e.what()); return 0; } +#else + jclass exception = env->FindClass("java/lang/UnsupportedOperationException"); + env->ThrowNew(exception, "org.kiwix.kiwixlib.JNIKiwixReader.getNativeReaderByFD() is not supported under Windows"); + return 0; +#endif } JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderEmbedded( JNIEnv* env, jobject obj, jobject fdObj, jlong offset, jlong size) { +#ifndef _WIN32 int fd = jni2fd(fdObj, env); LOG("Attempting to create reader with fd: %d", fd); @@ -97,6 +104,11 @@ JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderEm LOG(e.what()); return 0; } +#else + jclass exception = env->FindClass("java/lang/UnsupportedOperationException"); + env->ThrowNew(exception, "org.kiwix.kiwixlib.JNIKiwixReader.getNativeReaderEmbedded() is not supported under Windows"); + return 0; +#endif } JNIEXPORT void JNICALL