4 #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
\r
7 #include <Python.h> //header for system python import; add include paths
\r
8 #include <numpy/arrayobject.h>
\r
11 #include <Python.h> //header for system python import; add include paths
\r
12 #include <numpy/arrayobject.h>
\r
15 #include <jni.h> //java connection header
\r
17 /* To use this exported function of dll, include this header
\r
22 #define DLL_EXPORT __declspec(dllexport)
\r
24 #define DLL_EXPORT __declspec(dllimport)
\r
28 #define JAVA_MAXINT (0x7fffffff)
\r
30 #define PYTHON_EXCEPTION "org/simantics/pythonlink/PythonException"
\r
31 #define ILLEGAL_ARGUMENT_EXCEPTION "java/lang/IllegalArgumentException"
\r
32 #define OBJECT_CLASS "java/lang/Object"
\r
33 #define STRING_CLASS "java/lang/String"
\r
34 #define MAP_CLASS "java/util/Map"
\r
35 #define SET_CLASS "java/util/Set"
\r
37 #define PACKAGE_PREFIX "org/simantics/pythonlink/"
\r
39 #define NDARRAY_CLASS (PACKAGE_PREFIX "NDArray")
\r
41 #define VARIANT_CLASS "org/simantics/databoard/binding/mutable/Variant"
\r
42 #define BINDINGS_CLASS "org/simantics/databoard/Bindings"
\r
43 #define BINDING_CLASS "org/simantics/databoard/binding/Binding"
\r
44 #define DATATYPE_CLASS "org/simantics/databoard/type/Datatype"
\r
46 #define BOOLEANTYPE_CLASS "org/simantics/databoard/type/BooleanType"
\r
47 #define BYTETYPE_CLASS "org/simantics/databoard/type/ByteType"
\r
48 #define INTEGERTYPE_CLASS "org/simantics/databoard/type/IntegerType"
\r
49 #define LONGTYPE_CLASS "org/simantics/databoard/type/LongType"
\r
50 #define FLOATTYPE_CLASS "org/simantics/databoard/type/FloatType"
\r
51 #define DOUBLETYPE_CLASS "org/simantics/databoard/type/DoubleType"
\r
52 #define STRINGTYPE_CLASS "org/simantics/databoard/type/StringType"
\r
53 #define RECORDTYPE_CLASS "org/simantics/databoard/type/RecordType"
\r
54 #define ARRAYTYPE_CLASS "org/simantics/databoard/type/ArrayType"
\r
55 #define MAPTYPE_CLASS "org/simantics/databoard/type/MapType"
\r
56 #define OPTIONALTYPE_CLASS "org/simantics/databoard/type/OptionalType"
\r
57 #define UNIONTYPE_CLASS "org/simantics/databoard/type/UnionType"
\r
58 #define VARIANTTYPE_CLASS "org/simantics/databoard/type/VariantType"
\r
60 #define BOOLEANBINDING_CLASS "org/simantics/databoard/binding/BooleanBinding"
\r
61 #define BYTEBINDING_CLASS "org/simantics/databoard/binding/ByteBinding"
\r
62 #define INTEGERBINDING_CLASS "org/simantics/databoard/binding/IntegerBinding"
\r
63 #define LONGBINDING_CLASS "org/simantics/databoard/binding/LongBinding"
\r
64 #define FLOATBINDING_CLASS "org/simantics/databoard/binding/FloatBinding"
\r
65 #define DOUBLEBINDING_CLASS "org/simantics/databoard/binding/DoubleBinding"
\r
66 #define STRINGBINDING_CLASS "org/simantics/databoard/binding/StringBinding"
\r
67 #define RECORDBINDING_CLASS "org/simantics/databoard/binding/RecordBinding"
\r
68 #define ARRAYBINDING_CLASS "org/simantics/databoard/binding/ArrayBinding"
\r
69 #define MAPBINDING_CLASS "org/simantics/databoard/binding/MapBinding"
\r
70 #define OPTIONALBINDING_CLASS "org/simantics/databoard/binding/OptionalBinding"
\r
71 #define UNIONBINDING_CLASS "org/simantics/databoard/binding/UnionBinding"
\r
72 #define VARIANTBINDING_CLASS "org/simantics/databoard/binding/VariantBinding"
\r
74 #define COMPONENT_CLASS "org/simantics/databoard/type/Component"
\r
75 #define TAGGEDOBJECT_CLASS "org/simantics/databoard/binding/mutable/TaggedObject"
\r
77 PyObject *getPythonBooleanList(JNIEnv *env, jbooleanArray value);
\r
78 PyObject *getPythonByteArray(JNIEnv *env, jbyteArray value);
\r
79 PyObject *getPythonIntegerList(JNIEnv *env, jintArray value);
\r
80 PyObject *getPythonLongList(JNIEnv *env, jlongArray value);
\r
81 PyObject *getPythonFloatList(JNIEnv *env, jfloatArray value);
\r
82 PyObject *getPythonDoubleList(JNIEnv *env, jdoubleArray value);
\r
84 PyObject *getPythonObject(JNIEnv *env, jobject object, jobject binding);
\r
86 PyObject *getPythonBooleanObject(JNIEnv *env, jobject object, jobject binding);
\r
87 PyObject *getPythonByteObject(JNIEnv *env, jobject object, jobject binding);
\r
88 PyObject *getPythonIntegerObject(JNIEnv *env, jobject object, jobject binding);
\r
89 PyObject *getPythonLongObject(JNIEnv *env, jobject object, jobject binding);
\r
90 PyObject *getPythonFloatObject(JNIEnv *env, jobject object, jobject binding);
\r
91 PyObject *getPythonDoubleObject(JNIEnv *env, jobject object, jobject binding);
\r
92 PyObject *getPythonRecordObject(JNIEnv *env, jobjectArray object, jobject binding);
\r
93 PyObject *getPythonArrayObject(JNIEnv *env, jobject object, jobject binding);
\r
94 PyObject *getPythonMapObject(JNIEnv *env, jobject object, jobject binding);
\r
95 PyObject *getPythonOptionalObject(JNIEnv *env, jobject object, jobject binding);
\r
96 PyObject *getPythonUnionObject(JNIEnv *env, jobject object, jobject binding);
\r
97 PyObject *getPythonVariantObject(JNIEnv *env, jobject object, jobject binding);
\r
99 void setPythonVariable(PyObject *module, PyObject *name, PyObject *value);
\r
101 jobject pythonBoolAsBooleanObject(JNIEnv *env, PyObject *value);
\r
102 jobject pythonLongAsLongObject(JNIEnv *env, PyObject *value);
\r
103 jobject pythonFloatAsDoubleObject(JNIEnv *env, PyObject *value);
\r
104 jobject pythonByteArrayAsByteArray(JNIEnv *env, PyObject *value);
\r
105 jstring pythonStringAsJavaString(JNIEnv *env, PyObject *string);
\r
106 jobjectArray pythonSequenceAsObjectArray(JNIEnv *env, PyObject *seq);
\r
107 jobjectArray pythonSequenceAsStringArray(JNIEnv *env, PyObject *list);
\r
108 jintArray pythonSequenceAsIntegerArray(JNIEnv *env, PyObject *list);
\r
109 jlongArray pythonSequenceAsLongArray(JNIEnv *env, PyObject *list);
\r
110 jdoubleArray pythonSequenceAsDoubleArray(JNIEnv *env, PyObject *list);
\r
111 jobject pythonDictionaryAsMap(JNIEnv *env, PyObject *dict);
\r
112 jobject pythonArrayAsNDArray(JNIEnv *env, PyArrayObject *array);
\r
113 jobject pythonObjectAsObject(JNIEnv *env, PyObject *value);
\r
115 #endif // __MAIN_H__
\r