Repository navigation
Expand file tree
/
Copy pathnative-lib.cpp
More file actions
74 lines (63 loc) · 2.09 KB
/
Copy pathnative-lib.cpp
File metadata and controls
74 lines (63 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
// Created by admin on 2019-08-19.
//
#include <fcntl.h>
#include <jni.h>
#include <string>
#include <unistd.h>
#include "src/util/commonlog.h"
#include "src/FlipChartManager.h"
#define JAVA(X) JNIEXPORT Java_com_nd_flipchartparser_FlipchartparserPlugin_##X
namespace {
FlipChartManager *m_pFlipchartManager = nullptr;
const std::string kComponentNoInitial("Flipchart Parser Is Not Initialized");
}
extern "C"
{
jboolean JAVA(config)(JNIEnv *env, jobject obj, jstring tempPath, jboolean logEnabled) {
jboolean isCopy;
const char *tempPathCopy = env->GetStringUTFChars(tempPath, &isCopy);
if (access(tempPathCopy, R_OK | W_OK) == -1) {
return false;
}
if (!m_pFlipchartManager) {
m_pFlipchartManager = new FlipChartManager;
}
m_pFlipchartManager->setTempDir(tempPathCopy);
gLogEnabled = logEnabled;
return true;
}
jint JAVA(newInstance)(JNIEnv *env, jobject obj) {
if (!m_pFlipchartManager) {
return -1;
}
return m_pFlipchartManager->newInstance();
}
void JAVA(disposed)(JNIEnv *env, jobject obj, jint handle) {
if (!m_pFlipchartManager || handle == -1) {
return;
}
m_pFlipchartManager->disposed(handle);
}
jstring JAVA(openFlipchart)(JNIEnv *env, jobject obj, jint handle,
jstring flipChartPath) {
if (!m_pFlipchartManager || handle == -1) {
return env->NewStringUTF(kComponentNoInitial.data());
}
jboolean isCopy;
const char *srcPath = env->GetStringUTFChars(flipChartPath, &isCopy);
std::string result = m_pFlipchartManager->loadFlipchart(handle, srcPath);
env->ReleaseStringUTFChars(flipChartPath, srcPath);
return env->NewStringUTF(result.c_str());
}
jstring JAVA(loadPage)(JNIEnv *env, jobject obj, jint handle,
jint pageNumber) {
if (!m_pFlipchartManager || handle == -1) {
return env->NewStringUTF(kComponentNoInitial.data());
}
jint val = 100;
LOGDEBUG("pageNumber-->%d", val);
std::string result = m_pFlipchartManager->loadPage(handle, pageNumber);
return env->NewStringUTF(result.c_str());
}
}