mirror of https://github.com/kiwix/libkiwix.git
Fixed the Windows build
Opening ZIM archives by file descriptor (as well as embedded ZIM archives) is not supported under Windows.
This commit is contained in:
parent
5a8b825c70
commit
839fc10a4f
|
@ -56,8 +56,10 @@ class Reader
|
||||||
* (.zim extesion).
|
* (.zim extesion).
|
||||||
*/
|
*/
|
||||||
explicit Reader(const string zimFilePath);
|
explicit Reader(const string zimFilePath);
|
||||||
|
#ifndef _WIN32
|
||||||
explicit Reader(int fd);
|
explicit Reader(int fd);
|
||||||
Reader(int fd, zim::offset_type offset, zim::size_type size);
|
Reader(int fd, zim::offset_type offset, zim::size_type size);
|
||||||
|
#endif
|
||||||
~Reader() = default;
|
~Reader() = default;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -86,6 +86,7 @@ Reader::Reader(const string zimFilePath)
|
||||||
srand(time(nullptr));
|
srand(time(nullptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
Reader::Reader(int fd)
|
Reader::Reader(int fd)
|
||||||
: zimArchive(new zim::Archive(fd)),
|
: zimArchive(new zim::Archive(fd)),
|
||||||
zimFilePath("")
|
zimFilePath("")
|
||||||
|
@ -101,6 +102,7 @@ Reader::Reader(int fd, zim::offset_type offset, zim::size_type size)
|
||||||
/* initialize random seed: */
|
/* initialize random seed: */
|
||||||
srand(time(nullptr));
|
srand(time(nullptr));
|
||||||
}
|
}
|
||||||
|
#endif // #ifndef _WIN32
|
||||||
|
|
||||||
zim::Archive* Reader::getZimArchive() const
|
zim::Archive* Reader::getZimArchive() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -68,6 +68,7 @@ int jni2fd(const jobject& fdObj, JNIEnv* env)
|
||||||
JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderByFD(
|
JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderByFD(
|
||||||
JNIEnv* env, jobject obj, jobject fdObj)
|
JNIEnv* env, jobject obj, jobject fdObj)
|
||||||
{
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
int fd = jni2fd(fdObj, env);
|
int fd = jni2fd(fdObj, env);
|
||||||
|
|
||||||
LOG("Attempting to create reader with fd: %d", fd);
|
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());
|
LOG(e.what());
|
||||||
return 0;
|
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(
|
JNIEXPORT jlong JNICALL Java_org_kiwix_kiwixlib_JNIKiwixReader_getNativeReaderEmbedded(
|
||||||
JNIEnv* env, jobject obj, jobject fdObj, jlong offset, jlong size)
|
JNIEnv* env, jobject obj, jobject fdObj, jlong offset, jlong size)
|
||||||
{
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
int fd = jni2fd(fdObj, env);
|
int fd = jni2fd(fdObj, env);
|
||||||
|
|
||||||
LOG("Attempting to create reader with fd: %d", fd);
|
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());
|
LOG(e.what());
|
||||||
return 0;
|
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
|
JNIEXPORT void JNICALL
|
||||||
|
|
Loading…
Reference in New Issue