1846 lines
62 KiB
C++
1846 lines
62 KiB
C++
/* ----------------------------------------------------------------------------
|
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
|
* Version 3.0.8
|
|
*
|
|
* This file is not intended to be easily readable and contains a number of
|
|
* coding conventions designed to improve portability and efficiency. Do not make
|
|
* changes to this file unless you know what you are doing--modify the SWIG
|
|
* interface file instead.
|
|
* ----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef SWIGJAVA
|
|
#define SWIGJAVA
|
|
#endif
|
|
|
|
#define SWIG_DIRECTORS
|
|
|
|
|
|
#ifdef __cplusplus
|
|
/* SwigValueWrapper is described in swig.swg */
|
|
template<typename T> class SwigValueWrapper {
|
|
struct SwigMovePointer {
|
|
T *ptr;
|
|
SwigMovePointer(T *p) : ptr(p) { }
|
|
~SwigMovePointer() { delete ptr; }
|
|
SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
|
|
} pointer;
|
|
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
|
|
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
|
|
public:
|
|
SwigValueWrapper() : pointer(0) { }
|
|
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
|
|
operator T&() const { return *pointer.ptr; }
|
|
T *operator&() { return pointer.ptr; }
|
|
};
|
|
|
|
template <typename T> T SwigValueInit() {
|
|
return T();
|
|
}
|
|
#endif
|
|
|
|
/* -----------------------------------------------------------------------------
|
|
* This section contains generic SWIG labels for method/variable
|
|
* declarations/attributes, and other compiler dependent labels.
|
|
* ----------------------------------------------------------------------------- */
|
|
|
|
/* template workaround for compilers that cannot correctly implement the C++ standard */
|
|
#ifndef SWIGTEMPLATEDISAMBIGUATOR
|
|
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
|
|
# define SWIGTEMPLATEDISAMBIGUATOR template
|
|
# elif defined(__HP_aCC)
|
|
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
|
|
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
|
|
# define SWIGTEMPLATEDISAMBIGUATOR template
|
|
# else
|
|
# define SWIGTEMPLATEDISAMBIGUATOR
|
|
# endif
|
|
#endif
|
|
|
|
/* inline attribute */
|
|
#ifndef SWIGINLINE
|
|
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
|
|
# define SWIGINLINE inline
|
|
# else
|
|
# define SWIGINLINE
|
|
# endif
|
|
#endif
|
|
|
|
/* attribute recognised by some compilers to avoid 'unused' warnings */
|
|
#ifndef SWIGUNUSED
|
|
# if defined(__GNUC__)
|
|
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
|
|
# define SWIGUNUSED __attribute__ ((__unused__))
|
|
# else
|
|
# define SWIGUNUSED
|
|
# endif
|
|
# elif defined(__ICC)
|
|
# define SWIGUNUSED __attribute__ ((__unused__))
|
|
# else
|
|
# define SWIGUNUSED
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef SWIG_MSC_UNSUPPRESS_4505
|
|
# if defined(_MSC_VER)
|
|
# pragma warning(disable : 4505) /* unreferenced local function has been removed */
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef SWIGUNUSEDPARM
|
|
# ifdef __cplusplus
|
|
# define SWIGUNUSEDPARM(p)
|
|
# else
|
|
# define SWIGUNUSEDPARM(p) p SWIGUNUSED
|
|
# endif
|
|
#endif
|
|
|
|
/* internal SWIG method */
|
|
#ifndef SWIGINTERN
|
|
# define SWIGINTERN static SWIGUNUSED
|
|
#endif
|
|
|
|
/* internal inline SWIG method */
|
|
#ifndef SWIGINTERNINLINE
|
|
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
|
|
#endif
|
|
|
|
/* exporting methods */
|
|
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
|
# ifndef GCC_HASCLASSVISIBILITY
|
|
# define GCC_HASCLASSVISIBILITY
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef SWIGEXPORT
|
|
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
|
|
# if defined(STATIC_LINKED)
|
|
# define SWIGEXPORT
|
|
# else
|
|
# define SWIGEXPORT __declspec(dllexport)
|
|
# endif
|
|
# else
|
|
# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
|
|
# define SWIGEXPORT __attribute__ ((visibility("default")))
|
|
# else
|
|
# define SWIGEXPORT
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
/* calling conventions for Windows */
|
|
#ifndef SWIGSTDCALL
|
|
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
|
|
# define SWIGSTDCALL __stdcall
|
|
# else
|
|
# define SWIGSTDCALL
|
|
# endif
|
|
#endif
|
|
|
|
/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
|
|
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
|
|
# define _CRT_SECURE_NO_DEPRECATE
|
|
#endif
|
|
|
|
/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
|
|
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
|
|
# define _SCL_SECURE_NO_DEPRECATE
|
|
#endif
|
|
|
|
/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
|
|
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
|
|
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
|
|
#endif
|
|
|
|
/* Intel's compiler complains if a variable which was never initialised is
|
|
* cast to void, which is a common idiom which we use to indicate that we
|
|
* are aware a variable isn't used. So we just silence that warning.
|
|
* See: https://github.com/swig/swig/issues/192 for more discussion.
|
|
*/
|
|
#ifdef __INTEL_COMPILER
|
|
# pragma warning disable 592
|
|
#endif
|
|
|
|
|
|
/* Fix for jlong on some versions of gcc on Windows */
|
|
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
|
typedef long long __int64;
|
|
#endif
|
|
|
|
/* Fix for jlong on 64-bit x86 Solaris */
|
|
#if defined(__x86_64)
|
|
# ifdef _LP64
|
|
# undef _LP64
|
|
# endif
|
|
#endif
|
|
|
|
#include <jni.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
/* Support for throwing Java exceptions */
|
|
typedef enum {
|
|
SWIG_JavaOutOfMemoryError = 1,
|
|
SWIG_JavaIOException,
|
|
SWIG_JavaRuntimeException,
|
|
SWIG_JavaIndexOutOfBoundsException,
|
|
SWIG_JavaArithmeticException,
|
|
SWIG_JavaIllegalArgumentException,
|
|
SWIG_JavaNullPointerException,
|
|
SWIG_JavaDirectorPureVirtual,
|
|
SWIG_JavaUnknownError
|
|
} SWIG_JavaExceptionCodes;
|
|
|
|
typedef struct {
|
|
SWIG_JavaExceptionCodes code;
|
|
const char *java_exception;
|
|
} SWIG_JavaExceptions_t;
|
|
|
|
|
|
static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
|
|
jclass excep;
|
|
static const SWIG_JavaExceptions_t java_exceptions[] = {
|
|
{ SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
|
|
{ SWIG_JavaIOException, "java/io/IOException" },
|
|
{ SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
|
|
{ SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
|
|
{ SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
|
|
{ SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
|
|
{ SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
|
|
{ SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
|
|
{ SWIG_JavaUnknownError, "java/lang/UnknownError" },
|
|
{ (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" }
|
|
};
|
|
const SWIG_JavaExceptions_t *except_ptr = java_exceptions;
|
|
|
|
while (except_ptr->code != code && except_ptr->code)
|
|
except_ptr++;
|
|
|
|
jenv->ExceptionClear();
|
|
excep = jenv->FindClass(except_ptr->java_exception);
|
|
if (excep)
|
|
jenv->ThrowNew(excep, msg);
|
|
}
|
|
|
|
|
|
/* Contract support */
|
|
|
|
#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else
|
|
|
|
/* Errors in SWIG */
|
|
#define SWIG_UnknownError -1
|
|
#define SWIG_IOError -2
|
|
#define SWIG_RuntimeError -3
|
|
#define SWIG_IndexError -4
|
|
#define SWIG_TypeError -5
|
|
#define SWIG_DivisionByZero -6
|
|
#define SWIG_OverflowError -7
|
|
#define SWIG_SyntaxError -8
|
|
#define SWIG_ValueError -9
|
|
#define SWIG_SystemError -10
|
|
#define SWIG_AttributeError -11
|
|
#define SWIG_MemoryError -12
|
|
#define SWIG_NullReferenceError -13
|
|
|
|
|
|
|
|
/* -----------------------------------------------------------------------------
|
|
* director_common.swg
|
|
*
|
|
* This file contains support for director classes which is common between
|
|
* languages.
|
|
* ----------------------------------------------------------------------------- */
|
|
|
|
/*
|
|
Use -DSWIG_DIRECTOR_STATIC if you prefer to avoid the use of the
|
|
'Swig' namespace. This could be useful for multi-modules projects.
|
|
*/
|
|
#ifdef SWIG_DIRECTOR_STATIC
|
|
/* Force anonymous (static) namespace */
|
|
#define Swig
|
|
#endif
|
|
/* -----------------------------------------------------------------------------
|
|
* director.swg
|
|
*
|
|
* This file contains support for director classes so that Java proxy
|
|
* methods can be called from C++.
|
|
* ----------------------------------------------------------------------------- */
|
|
|
|
#if defined(DEBUG_DIRECTOR_OWNED) || defined(DEBUG_DIRECTOR_EXCEPTION)
|
|
#include <iostream>
|
|
#endif
|
|
|
|
#include <exception>
|
|
|
|
namespace Swig {
|
|
|
|
/* Java object wrapper */
|
|
class JObjectWrapper {
|
|
public:
|
|
JObjectWrapper() : jthis_(NULL), weak_global_(true) {
|
|
}
|
|
|
|
~JObjectWrapper() {
|
|
jthis_ = NULL;
|
|
weak_global_ = true;
|
|
}
|
|
|
|
bool set(JNIEnv *jenv, jobject jobj, bool mem_own, bool weak_global) {
|
|
if (!jthis_) {
|
|
weak_global_ = weak_global || !mem_own; // hold as weak global if explicitly requested or not owned
|
|
if (jobj)
|
|
jthis_ = weak_global_ ? jenv->NewWeakGlobalRef(jobj) : jenv->NewGlobalRef(jobj);
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "JObjectWrapper::set(" << jobj << ", " << (weak_global ? "weak_global" : "global_ref") << ") -> " << jthis_ << std::endl;
|
|
#endif
|
|
return true;
|
|
} else {
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "JObjectWrapper::set(" << jobj << ", " << (weak_global ? "weak_global" : "global_ref") << ") -> already set" << std::endl;
|
|
#endif
|
|
return false;
|
|
}
|
|
}
|
|
|
|
jobject get(JNIEnv *jenv) const {
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "JObjectWrapper::get(";
|
|
if (jthis_)
|
|
std::cout << jthis_;
|
|
else
|
|
std::cout << "null";
|
|
std::cout << ") -> return new local ref" << std::endl;
|
|
#endif
|
|
return (jthis_ ? jenv->NewLocalRef(jthis_) : jthis_);
|
|
}
|
|
|
|
void release(JNIEnv *jenv) {
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "JObjectWrapper::release(" << jthis_ << "): " << (weak_global_ ? "weak global ref" : "global ref") << std::endl;
|
|
#endif
|
|
if (jthis_) {
|
|
if (weak_global_) {
|
|
if (jenv->IsSameObject(jthis_, NULL) == JNI_FALSE)
|
|
jenv->DeleteWeakGlobalRef((jweak)jthis_);
|
|
} else
|
|
jenv->DeleteGlobalRef(jthis_);
|
|
}
|
|
|
|
jthis_ = NULL;
|
|
weak_global_ = true;
|
|
}
|
|
|
|
/* Only call peek if you know what you are doing wrt to weak/global references */
|
|
jobject peek() {
|
|
return jthis_;
|
|
}
|
|
|
|
/* Java proxy releases ownership of C++ object, C++ object is now
|
|
responsible for destruction (creates NewGlobalRef to pin Java proxy) */
|
|
void java_change_ownership(JNIEnv *jenv, jobject jself, bool take_or_release) {
|
|
if (take_or_release) { /* Java takes ownership of C++ object's lifetime. */
|
|
if (!weak_global_) {
|
|
jenv->DeleteGlobalRef(jthis_);
|
|
jthis_ = jenv->NewWeakGlobalRef(jself);
|
|
weak_global_ = true;
|
|
}
|
|
} else {
|
|
/* Java releases ownership of C++ object's lifetime */
|
|
if (weak_global_) {
|
|
jenv->DeleteWeakGlobalRef((jweak)jthis_);
|
|
jthis_ = jenv->NewGlobalRef(jself);
|
|
weak_global_ = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
private:
|
|
/* pointer to Java object */
|
|
jobject jthis_;
|
|
/* Local or global reference flag */
|
|
bool weak_global_;
|
|
};
|
|
|
|
/* Local JNI reference deleter */
|
|
class LocalRefGuard {
|
|
JNIEnv *jenv_;
|
|
jobject jobj_;
|
|
|
|
// non-copyable
|
|
LocalRefGuard(const LocalRefGuard &);
|
|
LocalRefGuard &operator=(const LocalRefGuard &);
|
|
public:
|
|
LocalRefGuard(JNIEnv *jenv, jobject jobj): jenv_(jenv), jobj_(jobj) {}
|
|
~LocalRefGuard() {
|
|
if (jobj_)
|
|
jenv_->DeleteLocalRef(jobj_);
|
|
}
|
|
};
|
|
|
|
/* director base class */
|
|
class Director {
|
|
/* pointer to Java virtual machine */
|
|
JavaVM *swig_jvm_;
|
|
|
|
protected:
|
|
#if defined (_MSC_VER) && (_MSC_VER<1300)
|
|
class JNIEnvWrapper;
|
|
friend class JNIEnvWrapper;
|
|
#endif
|
|
/* Utility class for managing the JNI environment */
|
|
class JNIEnvWrapper {
|
|
const Director *director_;
|
|
JNIEnv *jenv_;
|
|
int env_status;
|
|
public:
|
|
JNIEnvWrapper(const Director *director) : director_(director), jenv_(0), env_status(0) {
|
|
#if defined(__ANDROID__)
|
|
JNIEnv **jenv = &jenv_;
|
|
#else
|
|
void **jenv = (void **)&jenv_;
|
|
#endif
|
|
env_status = director_->swig_jvm_->GetEnv((void **)&jenv_, JNI_VERSION_1_2);
|
|
#if defined(SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON)
|
|
// Attach a daemon thread to the JVM. Useful when the JVM should not wait for
|
|
// the thread to exit upon shutdown. Only for jdk-1.4 and later.
|
|
director_->swig_jvm_->AttachCurrentThreadAsDaemon(jenv, NULL);
|
|
#else
|
|
director_->swig_jvm_->AttachCurrentThread(jenv, NULL);
|
|
#endif
|
|
}
|
|
~JNIEnvWrapper() {
|
|
#if !defined(SWIG_JAVA_NO_DETACH_CURRENT_THREAD)
|
|
// Some JVMs, eg jdk-1.4.2 and lower on Solaris have a bug and crash with the DetachCurrentThread call.
|
|
// However, without this call, the JVM hangs on exit when the thread was not created by the JVM and creates a memory leak.
|
|
if (env_status == JNI_EDETACHED)
|
|
director_->swig_jvm_->DetachCurrentThread();
|
|
#endif
|
|
}
|
|
JNIEnv *getJNIEnv() const {
|
|
return jenv_;
|
|
}
|
|
};
|
|
|
|
/* Java object wrapper */
|
|
JObjectWrapper swig_self_;
|
|
|
|
/* Disconnect director from Java object */
|
|
void swig_disconnect_director_self(const char *disconn_method) {
|
|
JNIEnvWrapper jnienv(this) ;
|
|
JNIEnv *jenv = jnienv.getJNIEnv() ;
|
|
jobject jobj = swig_self_.get(jenv);
|
|
LocalRefGuard ref_deleter(jenv, jobj);
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "Swig::Director::disconnect_director_self(" << jobj << ")" << std::endl;
|
|
#endif
|
|
if (jobj && jenv->IsSameObject(jobj, NULL) == JNI_FALSE) {
|
|
jmethodID disconn_meth = jenv->GetMethodID(jenv->GetObjectClass(jobj), disconn_method, "()V");
|
|
if (disconn_meth) {
|
|
#if defined(DEBUG_DIRECTOR_OWNED)
|
|
std::cout << "Swig::Director::disconnect_director_self upcall to " << disconn_method << std::endl;
|
|
#endif
|
|
jenv->CallVoidMethod(jobj, disconn_meth);
|
|
}
|
|
}
|
|
}
|
|
|
|
public:
|
|
Director(JNIEnv *jenv) : swig_jvm_((JavaVM *) NULL), swig_self_() {
|
|
/* Acquire the Java VM pointer */
|
|
jenv->GetJavaVM(&swig_jvm_);
|
|
}
|
|
|
|
virtual ~Director() {
|
|
JNIEnvWrapper jnienv(this) ;
|
|
JNIEnv *jenv = jnienv.getJNIEnv() ;
|
|
swig_self_.release(jenv);
|
|
}
|
|
|
|
bool swig_set_self(JNIEnv *jenv, jobject jself, bool mem_own, bool weak_global) {
|
|
return swig_self_.set(jenv, jself, mem_own, weak_global);
|
|
}
|
|
|
|
jobject swig_get_self(JNIEnv *jenv) const {
|
|
return swig_self_.get(jenv);
|
|
}
|
|
|
|
// Change C++ object's ownership, relative to Java
|
|
void swig_java_change_ownership(JNIEnv *jenv, jobject jself, bool take_or_release) {
|
|
swig_self_.java_change_ownership(jenv, jself, take_or_release);
|
|
}
|
|
};
|
|
|
|
// Zero initialized bool array
|
|
template<size_t N> class BoolArray {
|
|
bool array_[N];
|
|
public:
|
|
BoolArray() {
|
|
memset(array_, 0, sizeof(array_));
|
|
}
|
|
bool& operator[](size_t n) {
|
|
return array_[n];
|
|
}
|
|
bool operator[](size_t n) const {
|
|
return array_[n];
|
|
}
|
|
};
|
|
|
|
// Utility classes and functions for exception handling.
|
|
|
|
// Simple holder for a Java string during exception handling, providing access to a c-style string
|
|
class JavaString {
|
|
public:
|
|
JavaString(JNIEnv *jenv, jstring jstr) : jenv_(jenv), jstr_(jstr), cstr_(0) {
|
|
if (jenv_ && jstr_)
|
|
cstr_ = (const char *) jenv_->GetStringUTFChars(jstr_, NULL);
|
|
}
|
|
|
|
~JavaString() {
|
|
if (jenv_ && jstr_ && cstr_)
|
|
jenv_->ReleaseStringUTFChars(jstr_, cstr_);
|
|
}
|
|
|
|
const char *c_str(const char *null_string = "null JavaString") const {
|
|
return cstr_ ? cstr_ : null_string;
|
|
}
|
|
|
|
private:
|
|
// non-copyable
|
|
JavaString(const JavaString &);
|
|
JavaString &operator=(const JavaString &);
|
|
|
|
JNIEnv *jenv_;
|
|
jstring jstr_;
|
|
const char *cstr_;
|
|
};
|
|
|
|
// Helper class to extract the exception message from a Java throwable
|
|
class JavaExceptionMessage {
|
|
public:
|
|
JavaExceptionMessage(JNIEnv *jenv, jthrowable throwable) : message_(jenv, exceptionMessageFromThrowable(jenv, throwable)) {
|
|
}
|
|
|
|
const char *message() const {
|
|
return message_.c_str("Could not get exception message in JavaExceptionMessage");
|
|
}
|
|
|
|
private:
|
|
// non-copyable
|
|
JavaExceptionMessage(const JavaExceptionMessage &);
|
|
JavaExceptionMessage &operator=(const JavaExceptionMessage &);
|
|
|
|
// Get exception message by calling Java method Throwable.getMessage()
|
|
static jstring exceptionMessageFromThrowable(JNIEnv *jenv, jthrowable throwable) {
|
|
jstring jmsg = NULL;
|
|
if (jenv && throwable) {
|
|
jenv->ExceptionClear(); // Cannot invoke methods with any pending exceptions
|
|
jclass throwclz = jenv->GetObjectClass(throwable);
|
|
if (throwclz) {
|
|
// All Throwable classes have a getMessage() method, so call it to extract the exception message
|
|
jmethodID getMessageMethodID = jenv->GetMethodID(throwclz, "getMessage", "()Ljava/lang/String;");
|
|
if (getMessageMethodID)
|
|
jmsg = (jstring)jenv->CallObjectMethod(throwable, getMessageMethodID);
|
|
}
|
|
if (jmsg == NULL && jenv->ExceptionCheck())
|
|
jenv->ExceptionClear();
|
|
}
|
|
return jmsg;
|
|
}
|
|
|
|
JavaString message_;
|
|
};
|
|
|
|
// C++ Exception class for handling Java exceptions thrown during a director method Java upcall
|
|
class DirectorException : public std::exception {
|
|
public:
|
|
|
|
// Construct exception from a Java throwable
|
|
DirectorException(JNIEnv *jenv, jthrowable throwable) : classname_(0), msg_(0) {
|
|
|
|
// Call Java method Object.getClass().getName() to obtain the throwable's class name (delimited by '/')
|
|
if (throwable) {
|
|
jclass throwclz = jenv->GetObjectClass(throwable);
|
|
if (throwclz) {
|
|
jclass clzclz = jenv->GetObjectClass(throwclz);
|
|
if (clzclz) {
|
|
jmethodID getNameMethodID = jenv->GetMethodID(clzclz, "getName", "()Ljava/lang/String;");
|
|
if (getNameMethodID) {
|
|
jstring jstr_classname = (jstring)(jenv->CallObjectMethod(throwclz, getNameMethodID));
|
|
// Copy strings, since there is no guarantee that jenv will be active when handled
|
|
if (jstr_classname) {
|
|
JavaString jsclassname(jenv, jstr_classname);
|
|
const char *classname = jsclassname.c_str(0);
|
|
if (classname)
|
|
classname_ = copypath(classname);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
JavaExceptionMessage exceptionmsg(jenv, throwable);
|
|
msg_ = copystr(exceptionmsg.message());
|
|
}
|
|
|
|
// More general constructor for handling as a java.lang.RuntimeException
|
|
DirectorException(const char *msg) : classname_(0), msg_(copystr(msg ? msg : "Unspecified DirectorException message")) {
|
|
}
|
|
|
|
~DirectorException() throw() {
|
|
delete[] classname_;
|
|
delete[] msg_;
|
|
}
|
|
|
|
const char *what() const throw() {
|
|
return msg_;
|
|
}
|
|
|
|
// Reconstruct and raise/throw the Java Exception that caused the DirectorException
|
|
// Note that any error in the JNI exception handling results in a Java RuntimeException
|
|
void raiseJavaException(JNIEnv *jenv) const {
|
|
if (jenv) {
|
|
jenv->ExceptionClear();
|
|
|
|
jmethodID ctorMethodID = 0;
|
|
jclass throwableclass = 0;
|
|
if (classname_) {
|
|
throwableclass = jenv->FindClass(classname_);
|
|
if (throwableclass)
|
|
ctorMethodID = jenv->GetMethodID(throwableclass, "<init>", "(Ljava/lang/String;)V");
|
|
}
|
|
|
|
if (ctorMethodID) {
|
|
jenv->ThrowNew(throwableclass, what());
|
|
} else {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, what());
|
|
}
|
|
}
|
|
}
|
|
|
|
private:
|
|
static char *copypath(const char *srcmsg) {
|
|
char *target = copystr(srcmsg);
|
|
for (char *c=target; *c; ++c) {
|
|
if ('.' == *c)
|
|
*c = '/';
|
|
}
|
|
return target;
|
|
}
|
|
|
|
static char *copystr(const char *srcmsg) {
|
|
char *target = 0;
|
|
if (srcmsg) {
|
|
size_t msglen = strlen(srcmsg) + 1;
|
|
target = new char[msglen];
|
|
strncpy(target, srcmsg, msglen);
|
|
}
|
|
return target;
|
|
}
|
|
|
|
const char *classname_;
|
|
const char *msg_;
|
|
};
|
|
|
|
// Helper method to determine if a Java throwable matches a particular Java class type
|
|
SWIGINTERN bool ExceptionMatches(JNIEnv *jenv, jthrowable throwable, const char *classname) {
|
|
bool matches = false;
|
|
|
|
if (throwable && jenv && classname) {
|
|
// Exceptions need to be cleared for correct behavior.
|
|
// The caller of ExceptionMatches should restore pending exceptions if desired -
|
|
// the caller already has the throwable.
|
|
jenv->ExceptionClear();
|
|
|
|
jclass clz = jenv->FindClass(classname);
|
|
if (clz) {
|
|
jclass classclz = jenv->GetObjectClass(clz);
|
|
jmethodID isInstanceMethodID = jenv->GetMethodID(classclz, "isInstance", "(Ljava/lang/Object;)Z");
|
|
if (isInstanceMethodID) {
|
|
matches = jenv->CallBooleanMethod(clz, isInstanceMethodID, throwable) != 0;
|
|
}
|
|
}
|
|
|
|
#if defined(DEBUG_DIRECTOR_EXCEPTION)
|
|
if (jenv->ExceptionCheck()) {
|
|
// Typically occurs when an invalid classname argument is passed resulting in a ClassNotFoundException
|
|
JavaExceptionMessage exc(jenv, jenv->ExceptionOccurred());
|
|
std::cout << "Error: ExceptionMatches: class '" << classname << "' : " << exc.message() << std::endl;
|
|
}
|
|
#endif
|
|
}
|
|
return matches;
|
|
}
|
|
}
|
|
|
|
|
|
#include <stdexcept>
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#include <vector>
|
|
#include <stdexcept>
|
|
|
|
|
|
#include <map>
|
|
#include <algorithm>
|
|
#include <stdexcept>
|
|
|
|
|
|
SWIGINTERN void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) {
|
|
SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError;
|
|
switch(code) {
|
|
case SWIG_MemoryError:
|
|
exception_code = SWIG_JavaOutOfMemoryError;
|
|
break;
|
|
case SWIG_IOError:
|
|
exception_code = SWIG_JavaIOException;
|
|
break;
|
|
case SWIG_SystemError:
|
|
case SWIG_RuntimeError:
|
|
exception_code = SWIG_JavaRuntimeException;
|
|
break;
|
|
case SWIG_OverflowError:
|
|
case SWIG_IndexError:
|
|
exception_code = SWIG_JavaIndexOutOfBoundsException;
|
|
break;
|
|
case SWIG_DivisionByZero:
|
|
exception_code = SWIG_JavaArithmeticException;
|
|
break;
|
|
case SWIG_SyntaxError:
|
|
case SWIG_ValueError:
|
|
case SWIG_TypeError:
|
|
exception_code = SWIG_JavaIllegalArgumentException;
|
|
break;
|
|
case SWIG_UnknownError:
|
|
default:
|
|
exception_code = SWIG_JavaUnknownError;
|
|
break;
|
|
}
|
|
SWIG_JavaThrowException(jenv, exception_code, msg);
|
|
}
|
|
|
|
|
|
#include <stdexcept>
|
|
|
|
|
|
#include <utility>
|
|
|
|
|
|
/** #include "client/syncandmessagedisp.h" **/
|
|
#include "client/vanaccess.h"
|
|
#include "component/storagenodedbaccess_java.h"
|
|
|
|
using namespace sequencelogic;
|
|
|
|
|
|
|
|
/* ---------------------------------------------------
|
|
* C++ director class methods
|
|
* --------------------------------------------------- */
|
|
|
|
#include "cppcorejni.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
SWIGEXPORT jlong JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_new_1VanAccess(JNIEnv *jenv, jclass jcls) {
|
|
jlong jresult = 0 ;
|
|
sequencelogic::VanAccess *result = 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
result = (sequencelogic::VanAccess *)new sequencelogic::VanAccess();
|
|
*(sequencelogic::VanAccess **)&jresult = result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT void JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_delete_1VanAccess(JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
delete arg1;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1VAN_1CONFIG_1JSON_1get(JNIEnv *jenv, jclass jcls) {
|
|
jstring jresult = 0 ;
|
|
char *result = 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
result = (char *)(char *)sequencelogic::VanAccess::VAN_CONFIG_JSON;
|
|
if (result) jresult = jenv->NewStringUTF((const char *)result);
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1LAST_1ACTIVE_1USER_1get(JNIEnv *jenv, jclass jcls) {
|
|
jstring jresult = 0 ;
|
|
char *result = 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
result = (char *)(char *)sequencelogic::VanAccess::LAST_ACTIVE_USER;
|
|
if (result) jresult = jenv->NewStringUTF((const char *)result);
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1setVANDataRootDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->setVANDataRootDirectory((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getVANDataRootDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getVANDataRootDirectory();
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1setVANInternalDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->setVANInternalDirectory((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getVANInternalDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getVANInternalDirectory();
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1setCurrentVan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->setCurrentVan((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getCurrentVan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getCurrentVan();
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getProvisionedVANs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getProvisionedVANs();
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getProvisionedUsers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getProvisionedUsers((std::string const &)*arg2);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1isProvisionedUser(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string *arg3 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
if(!jarg3) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
|
|
if (!arg3_pstr) return 0;
|
|
std::string arg3_str(arg3_pstr);
|
|
arg3 = &arg3_str;
|
|
jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
|
|
result = ((sequencelogic::VanAccess const *)arg1)->isProvisionedUser((std::string const &)*arg2,(std::string const &)*arg3);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT void JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1wipeOffice(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return ;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return ;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
(arg1)->wipeOffice((std::string const &)*arg2);
|
|
}
|
|
|
|
|
|
SWIGEXPORT void JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1wipeCurrentVAN(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
(arg1)->wipeCurrentVAN();
|
|
}
|
|
|
|
|
|
SWIGEXPORT void JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1wipe(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
(arg1)->wipe();
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1installVAN(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->installVAN((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1setDeviceURN(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->setDeviceURN((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_VanAccess_1getDeviceURN(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::VanAccess *arg1 = (sequencelogic::VanAccess *) 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::VanAccess **)&jarg1;
|
|
result = ((sequencelogic::VanAccess const *)arg1)->getDeviceURN();
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jlong JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_new_1StorageNodeDBAccessJava(JNIEnv *jenv, jclass jcls) {
|
|
jlong jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *result = 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
result = (sequencelogic::StorageNodeDBAccessJava *)new sequencelogic::StorageNodeDBAccessJava();
|
|
*(sequencelogic::StorageNodeDBAccessJava **)&jresult = result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT void JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_delete_1StorageNodeDBAccessJava(JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
delete arg1;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1initDB(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->initDB((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodes((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4, jstring jarg5, jboolean jarg6) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
int arg3 ;
|
|
int arg4 ;
|
|
std::string *arg5 = 0 ;
|
|
bool arg6 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
arg3 = (int)jarg3;
|
|
arg4 = (int)jarg4;
|
|
if(!jarg5) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg5_pstr = (const char *)jenv->GetStringUTFChars(jarg5, 0);
|
|
if (!arg5_pstr) return 0;
|
|
std::string arg5_str(arg5_pstr);
|
|
arg5 = &arg5_str;
|
|
jenv->ReleaseStringUTFChars(jarg5, arg5_pstr);
|
|
arg6 = jarg6 ? true : false;
|
|
result = (arg1)->listChildren((std::string const &)*arg2,arg3,arg4,(std::string const &)*arg5,arg6);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4, jstring jarg5) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
int arg3 ;
|
|
int arg4 ;
|
|
std::string *arg5 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
arg3 = (int)jarg3;
|
|
arg4 = (int)jarg4;
|
|
if(!jarg5) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg5_pstr = (const char *)jenv->GetStringUTFChars(jarg5, 0);
|
|
if (!arg5_pstr) return 0;
|
|
std::string arg5_str(arg5_pstr);
|
|
arg5 = &arg5_str;
|
|
jenv->ReleaseStringUTFChars(jarg5, arg5_pstr);
|
|
result = (arg1)->listChildren((std::string const &)*arg2,arg3,arg4,(std::string const &)*arg5);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
int arg3 ;
|
|
int arg4 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
arg3 = (int)jarg3;
|
|
arg4 = (int)jarg4;
|
|
result = (arg1)->listChildren((std::string const &)*arg2,arg3,arg4);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
int arg3 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
arg3 = (int)jarg3;
|
|
result = (arg1)->listChildren((std::string const &)*arg2,arg3);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->listChildren((std::string const &)*arg2);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jstring jarg5, jboolean jarg6) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string *arg3 = 0 ;
|
|
int arg4 ;
|
|
std::string *arg5 = 0 ;
|
|
bool arg6 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
if(!jarg3) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
|
|
if (!arg3_pstr) return 0;
|
|
std::string arg3_str(arg3_pstr);
|
|
arg3 = &arg3_str;
|
|
jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
|
|
arg4 = (int)jarg4;
|
|
if(!jarg5) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg5_pstr = (const char *)jenv->GetStringUTFChars(jarg5, 0);
|
|
if (!arg5_pstr) return 0;
|
|
std::string arg5_str(arg5_pstr);
|
|
arg5 = &arg5_str;
|
|
jenv->ReleaseStringUTFChars(jarg5, arg5_pstr);
|
|
arg6 = jarg6 ? true : false;
|
|
result = (arg1)->listChildren((std::string const &)*arg2,(std::string const &)*arg3,arg4,(std::string const &)*arg5,arg6);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4, jstring jarg5) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string *arg3 = 0 ;
|
|
int arg4 ;
|
|
std::string *arg5 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
if(!jarg3) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
|
|
if (!arg3_pstr) return 0;
|
|
std::string arg3_str(arg3_pstr);
|
|
arg3 = &arg3_str;
|
|
jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
|
|
arg4 = (int)jarg4;
|
|
if(!jarg5) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg5_pstr = (const char *)jenv->GetStringUTFChars(jarg5, 0);
|
|
if (!arg5_pstr) return 0;
|
|
std::string arg5_str(arg5_pstr);
|
|
arg5 = &arg5_str;
|
|
jenv->ReleaseStringUTFChars(jarg5, arg5_pstr);
|
|
result = (arg1)->listChildren((std::string const &)*arg2,(std::string const &)*arg3,arg4,(std::string const &)*arg5);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_17(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jint jarg4) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string *arg3 = 0 ;
|
|
int arg4 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
if(!jarg3) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
|
|
if (!arg3_pstr) return 0;
|
|
std::string arg3_str(arg3_pstr);
|
|
arg3 = &arg3_str;
|
|
jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
|
|
arg4 = (int)jarg4;
|
|
result = (arg1)->listChildren((std::string const &)*arg2,(std::string const &)*arg3,arg4);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jstring JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1listChildren_1_1SWIG_18(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
|
|
jstring jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
std::string *arg3 = 0 ;
|
|
std::string result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
if(!jarg3) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
|
|
if (!arg3_pstr) return 0;
|
|
std::string arg3_str(arg3_pstr);
|
|
arg3 = &arg3_str;
|
|
jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
|
|
result = (arg1)->listChildren((std::string const &)*arg2,(std::string const &)*arg3);
|
|
jresult = jenv->NewStringUTF((&result)->c_str());
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1putNode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->putNode((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jint JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1rowCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
|
|
jint jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
int result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
result = (int)(arg1)->rowCount();
|
|
jresult = (jint)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jint JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1countChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jint jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
int result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (int)(arg1)->countChildren((std::string const &)*arg2);
|
|
jresult = (jint)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodesInDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodesInDirectory((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodesByPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodesByPath((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodesByPathForMountAndSignature(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodesByPathForMountAndSignature((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodesByStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodesByStatus((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jobjectArray JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1getNodesByUniformResourceName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jobjectArray jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
SwigValueWrapper< std::shared_ptr< std::vector< std::string > > > result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (arg1)->getNodesByUniformResourceName((std::string const &)*arg2);
|
|
{
|
|
// This may look strange, but SWIG insists on wrapping the return value in their
|
|
// SwigValueWrapper template class. Unfortunately, adding the line:
|
|
// %feature("novaluewrapper") std::shared_ptr<std::vector<std::string> >;
|
|
// Doesn't seem to work. I'm probably being too cute with my code.
|
|
std::shared_ptr<std::vector<std::string> > pRes = *(&result);
|
|
if (pRes == NULL)
|
|
{
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "NULL std::shared_ptr<std::vector<std::string> >");
|
|
return 0;
|
|
}
|
|
|
|
size_t nLen = pRes->size();
|
|
const jclass jStringClass = jenv->FindClass("java/lang/String");
|
|
jresult = jenv->NewObjectArray(static_cast<jsize>(nLen), jStringClass, NULL);
|
|
for (unsigned int i = 0; i < nLen; ++i)
|
|
{
|
|
jstring tmpStr = jenv->NewStringUTF(pRes->at(i).c_str());
|
|
jenv->SetObjectArrayElement(jresult, i, tmpStr);
|
|
jenv->DeleteLocalRef(tmpStr);
|
|
}
|
|
}
|
|
return jresult;
|
|
}
|
|
|
|
|
|
SWIGEXPORT jboolean JNICALL Java_com_sequencelogic_cppcore_client_cppcoreJNI_StorageNodeDBAccessJava_1deleteNodes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
|
|
jboolean jresult = 0 ;
|
|
sequencelogic::StorageNodeDBAccessJava *arg1 = (sequencelogic::StorageNodeDBAccessJava *) 0 ;
|
|
std::string *arg2 = 0 ;
|
|
bool result;
|
|
|
|
(void)jenv;
|
|
(void)jcls;
|
|
(void)jarg1_;
|
|
arg1 = *(sequencelogic::StorageNodeDBAccessJava **)&jarg1;
|
|
if(!jarg2) {
|
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
|
|
return 0;
|
|
}
|
|
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
|
|
if (!arg2_pstr) return 0;
|
|
std::string arg2_str(arg2_pstr);
|
|
arg2 = &arg2_str;
|
|
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
|
|
result = (bool)(arg1)->deleteNodes((std::string const &)*arg2);
|
|
jresult = (jboolean)result;
|
|
return jresult;
|
|
}
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|