X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.pythonlink.win32.x86_64%2Fsrc%2Fsclpy.h;h=e71e107040475b26a1afba11aa2cf0aa6f07953c;hb=8885425046e0f89893c0e1ee0fe5c27948dcd2be;hp=4032d4854512fb27fa18008e6a1c23b894140e63;hpb=f8f212403765ac5f8c4c08ab6b7d7a78c1c9a6f3;p=simantics%2Fpython.git diff --git a/org.simantics.pythonlink.win32.x86_64/src/sclpy.h b/org.simantics.pythonlink.win32.x86_64/src/sclpy.h index 4032d48..e71e107 100644 --- a/org.simantics.pythonlink.win32.x86_64/src/sclpy.h +++ b/org.simantics.pythonlink.win32.x86_64/src/sclpy.h @@ -1,115 +1,117 @@ -#ifndef __MAIN_H__ -#define __MAIN_H__ - -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION -#ifdef _DEBUG - #undef _DEBUG - #include //header for system python import; add include paths - #include - #define _DEBUG 1 -#else - #include //header for system python import; add include paths - #include -#endif - -#include //java connection header - -/* To use this exported function of dll, include this header - * in your project. - */ - -#ifdef BUILD_DLL - #define DLL_EXPORT __declspec(dllexport) -#else - #define DLL_EXPORT __declspec(dllimport) -#endif - - -#define JAVA_MAXINT (0x7fffffff) - -#define PYTHON_EXCEPTION "org/simantics/pythonlink/PythonException" -#define ILLEGAL_ARGUMENT_EXCEPTION "java/lang/IllegalArgumentException" -#define OBJECT_CLASS "java/lang/Object" -#define STRING_CLASS "java/lang/String" -#define MAP_CLASS "java/util/Map" -#define SET_CLASS "java/util/Set" - -#define PACKAGE_PREFIX "org/simantics/pythonlink/" - -#define NDARRAY_CLASS (PACKAGE_PREFIX "NDArray") - -#define VARIANT_CLASS "org/simantics/databoard/binding/mutable/Variant" -#define BINDINGS_CLASS "org/simantics/databoard/Bindings" -#define BINDING_CLASS "org/simantics/databoard/binding/Binding" -#define DATATYPE_CLASS "org/simantics/databoard/type/Datatype" - -#define BOOLEANTYPE_CLASS "org/simantics/databoard/type/BooleanType" -#define BYTETYPE_CLASS "org/simantics/databoard/type/ByteType" -#define INTEGERTYPE_CLASS "org/simantics/databoard/type/IntegerType" -#define LONGTYPE_CLASS "org/simantics/databoard/type/LongType" -#define FLOATTYPE_CLASS "org/simantics/databoard/type/FloatType" -#define DOUBLETYPE_CLASS "org/simantics/databoard/type/DoubleType" -#define STRINGTYPE_CLASS "org/simantics/databoard/type/StringType" -#define RECORDTYPE_CLASS "org/simantics/databoard/type/RecordType" -#define ARRAYTYPE_CLASS "org/simantics/databoard/type/ArrayType" -#define MAPTYPE_CLASS "org/simantics/databoard/type/MapType" -#define OPTIONALTYPE_CLASS "org/simantics/databoard/type/OptionalType" -#define UNIONTYPE_CLASS "org/simantics/databoard/type/UnionType" -#define VARIANTTYPE_CLASS "org/simantics/databoard/type/VariantType" - -#define BOOLEANBINDING_CLASS "org/simantics/databoard/binding/BooleanBinding" -#define BYTEBINDING_CLASS "org/simantics/databoard/binding/ByteBinding" -#define INTEGERBINDING_CLASS "org/simantics/databoard/binding/IntegerBinding" -#define LONGBINDING_CLASS "org/simantics/databoard/binding/LongBinding" -#define FLOATBINDING_CLASS "org/simantics/databoard/binding/FloatBinding" -#define DOUBLEBINDING_CLASS "org/simantics/databoard/binding/DoubleBinding" -#define STRINGBINDING_CLASS "org/simantics/databoard/binding/StringBinding" -#define RECORDBINDING_CLASS "org/simantics/databoard/binding/RecordBinding" -#define ARRAYBINDING_CLASS "org/simantics/databoard/binding/ArrayBinding" -#define MAPBINDING_CLASS "org/simantics/databoard/binding/MapBinding" -#define OPTIONALBINDING_CLASS "org/simantics/databoard/binding/OptionalBinding" -#define UNIONBINDING_CLASS "org/simantics/databoard/binding/UnionBinding" -#define VARIANTBINDING_CLASS "org/simantics/databoard/binding/VariantBinding" - -#define COMPONENT_CLASS "org/simantics/databoard/type/Component" -#define TAGGEDOBJECT_CLASS "org/simantics/databoard/binding/mutable/TaggedObject" - -PyObject *getPythonBooleanList(JNIEnv *env, jbooleanArray value); -PyObject *getPythonByteArray(JNIEnv *env, jbyteArray value); -PyObject *getPythonIntegerList(JNIEnv *env, jintArray value); -PyObject *getPythonLongList(JNIEnv *env, jlongArray value); -PyObject *getPythonFloatList(JNIEnv *env, jfloatArray value); -PyObject *getPythonDoubleList(JNIEnv *env, jdoubleArray value); - -PyObject *getPythonObject(JNIEnv *env, jobject object, jobject binding); - -PyObject *getPythonBooleanObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonByteObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonIntegerObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonLongObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonFloatObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonDoubleObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonRecordObject(JNIEnv *env, jobjectArray object, jobject binding); -PyObject *getPythonArrayObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonMapObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonOptionalObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonUnionObject(JNIEnv *env, jobject object, jobject binding); -PyObject *getPythonVariantObject(JNIEnv *env, jobject object, jobject binding); - -void setPythonVariable(PyObject *module, PyObject *name, PyObject *value); - -jobject pythonBoolAsBooleanObject(JNIEnv *env, PyObject *value); -jobject pythonLongAsLongObject(JNIEnv *env, PyObject *value); -jobject pythonFloatAsDoubleObject(JNIEnv *env, PyObject *value); -jobject pythonByteArrayAsByteArray(JNIEnv *env, PyObject *value); -jstring pythonStringAsJavaString(JNIEnv *env, PyObject *string); -jobjectArray pythonSequenceAsObjectArray(JNIEnv *env, PyObject *seq); -jobjectArray pythonSequenceAsStringArray(JNIEnv *env, PyObject *list); -jintArray pythonSequenceAsIntegerArray(JNIEnv *env, PyObject *list); -jlongArray pythonSequenceAsLongArray(JNIEnv *env, PyObject *list); -jdoubleArray pythonSequenceAsDoubleArray(JNIEnv *env, PyObject *list); -jobject pythonDictionaryAsMap(JNIEnv *env, PyObject *dict); -jobject pythonArrayAsNDArray(JNIEnv *env, PyArrayObject *array); -jobject pythonObjectAsObject(JNIEnv *env, PyObject *value); - -#endif // __MAIN_H__ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION +#ifdef _DEBUG + #undef _DEBUG + #include //header for system python import; add include paths + #include + #define _DEBUG 1 +#else + #include //header for system python import; add include paths + #include +#endif + +#include //java connection header + +/* To use this exported function of dll, include this header + * in your project. + */ + +#ifdef BUILD_DLL + #define DLL_EXPORT __declspec(dllexport) +#else + #define DLL_EXPORT __declspec(dllimport) +#endif + + +#define JAVA_MAXINT (0x7fffffff) + +#define PYTHON_EXCEPTION "org/simantics/pythonlink/PythonException" +#define ILLEGAL_ARGUMENT_EXCEPTION "java/lang/IllegalArgumentException" +#define OBJECT_CLASS "java/lang/Object" +#define STRING_CLASS "java/lang/String" +#define MAP_CLASS "java/util/Map" +#define SET_CLASS "java/util/Set" + +#define WRITER_CLASS "java/io/Writer" + +#define PACKAGE_PREFIX "org/simantics/pythonlink/" + +#define NDARRAY_CLASS (PACKAGE_PREFIX "NDArray") + +#define VARIANT_CLASS "org/simantics/databoard/binding/mutable/Variant" +#define BINDINGS_CLASS "org/simantics/databoard/Bindings" +#define BINDING_CLASS "org/simantics/databoard/binding/Binding" +#define DATATYPE_CLASS "org/simantics/databoard/type/Datatype" + +#define BOOLEANTYPE_CLASS "org/simantics/databoard/type/BooleanType" +#define BYTETYPE_CLASS "org/simantics/databoard/type/ByteType" +#define INTEGERTYPE_CLASS "org/simantics/databoard/type/IntegerType" +#define LONGTYPE_CLASS "org/simantics/databoard/type/LongType" +#define FLOATTYPE_CLASS "org/simantics/databoard/type/FloatType" +#define DOUBLETYPE_CLASS "org/simantics/databoard/type/DoubleType" +#define STRINGTYPE_CLASS "org/simantics/databoard/type/StringType" +#define RECORDTYPE_CLASS "org/simantics/databoard/type/RecordType" +#define ARRAYTYPE_CLASS "org/simantics/databoard/type/ArrayType" +#define MAPTYPE_CLASS "org/simantics/databoard/type/MapType" +#define OPTIONALTYPE_CLASS "org/simantics/databoard/type/OptionalType" +#define UNIONTYPE_CLASS "org/simantics/databoard/type/UnionType" +#define VARIANTTYPE_CLASS "org/simantics/databoard/type/VariantType" + +#define BOOLEANBINDING_CLASS "org/simantics/databoard/binding/BooleanBinding" +#define BYTEBINDING_CLASS "org/simantics/databoard/binding/ByteBinding" +#define INTEGERBINDING_CLASS "org/simantics/databoard/binding/IntegerBinding" +#define LONGBINDING_CLASS "org/simantics/databoard/binding/LongBinding" +#define FLOATBINDING_CLASS "org/simantics/databoard/binding/FloatBinding" +#define DOUBLEBINDING_CLASS "org/simantics/databoard/binding/DoubleBinding" +#define STRINGBINDING_CLASS "org/simantics/databoard/binding/StringBinding" +#define RECORDBINDING_CLASS "org/simantics/databoard/binding/RecordBinding" +#define ARRAYBINDING_CLASS "org/simantics/databoard/binding/ArrayBinding" +#define MAPBINDING_CLASS "org/simantics/databoard/binding/MapBinding" +#define OPTIONALBINDING_CLASS "org/simantics/databoard/binding/OptionalBinding" +#define UNIONBINDING_CLASS "org/simantics/databoard/binding/UnionBinding" +#define VARIANTBINDING_CLASS "org/simantics/databoard/binding/VariantBinding" + +#define COMPONENT_CLASS "org/simantics/databoard/type/Component" +#define TAGGEDOBJECT_CLASS "org/simantics/databoard/binding/mutable/TaggedObject" + +PyObject *getPythonBooleanList(JNIEnv *env, jbooleanArray value); +PyObject *getPythonByteArray(JNIEnv *env, jbyteArray value); +PyObject *getPythonIntegerList(JNIEnv *env, jintArray value); +PyObject *getPythonLongList(JNIEnv *env, jlongArray value); +PyObject *getPythonFloatList(JNIEnv *env, jfloatArray value); +PyObject *getPythonDoubleList(JNIEnv *env, jdoubleArray value); + +PyObject *getPythonObject(JNIEnv *env, jobject object, jobject binding); + +PyObject *getPythonBooleanObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonByteObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonIntegerObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonLongObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonFloatObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonDoubleObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonRecordObject(JNIEnv *env, jobjectArray object, jobject binding); +PyObject *getPythonArrayObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonMapObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonOptionalObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonUnionObject(JNIEnv *env, jobject object, jobject binding); +PyObject *getPythonVariantObject(JNIEnv *env, jobject object, jobject binding); + +void setPythonVariable(PyObject *module, PyObject *name, PyObject *value); + +jobject pythonBoolAsBooleanObject(JNIEnv *env, PyObject *value); +jobject pythonLongAsLongObject(JNIEnv *env, PyObject *value); +jobject pythonFloatAsDoubleObject(JNIEnv *env, PyObject *value); +jobject pythonByteArrayAsByteArray(JNIEnv *env, PyObject *value); +jstring pythonStringAsJavaString(JNIEnv *env, PyObject *string); +jobjectArray pythonSequenceAsObjectArray(JNIEnv *env, PyObject *seq); +jobjectArray pythonSequenceAsStringArray(JNIEnv *env, PyObject *list); +jintArray pythonSequenceAsIntegerArray(JNIEnv *env, PyObject *list); +jlongArray pythonSequenceAsLongArray(JNIEnv *env, PyObject *list); +jdoubleArray pythonSequenceAsDoubleArray(JNIEnv *env, PyObject *list); +jobject pythonDictionaryAsMap(JNIEnv *env, PyObject *dict); +jobject pythonArrayAsNDArray(JNIEnv *env, PyArrayObject *array); +jobject pythonObjectAsObject(JNIEnv *env, PyObject *value); + +#endif // __MAIN_H__