This repository was archived by the owner on Aug 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 226
Expand file tree
/
Copy pathfoundation-java-private.h
More file actions
85 lines (72 loc) · 2.92 KB
/
foundation-java-private.h
File metadata and controls
85 lines (72 loc) · 2.92 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
75
76
77
78
79
80
81
82
83
84
85
#ifndef libfoundation_foundation_java_private_h
#define libfoundation_foundation_java_private_h
bool initialise_jvm();
void finalise_jvm();
enum MCJavaCallType {
MCJavaCallTypeInstance,
MCJavaCallTypeStatic,
MCJavaCallTypeNonVirtual,
MCJavaCallTypeConstructor,
MCJavaCallTypeInterfaceProxy,
MCJavaCallTypeGetter,
MCJavaCallTypeSetter,
MCJavaCallTypeStaticGetter,
MCJavaCallTypeStaticSetter
};
enum MCJavaType {
kMCJavaTypeUnknown,
kMCJavaTypeVoid,
kMCJavaTypeBoolean,
kMCJavaTypeByte,
kMCJavaTypeChar,
kMCJavaTypeShort,
kMCJavaTypeInt,
kMCJavaTypeLong,
kMCJavaTypeFloat,
kMCJavaTypeDouble,
kMCJavaTypeArray,
kMCJavaTypeObject,
};
typedef struct
{
const char *name;
MCJavaType type;
}
java_type_map;
static const java_type_map type_map[] =
{
{"V", kMCJavaTypeVoid},
{"Z", kMCJavaTypeBoolean},
{"B", kMCJavaTypeByte},
{"C", kMCJavaTypeChar},
{"S", kMCJavaTypeShort},
{"I", kMCJavaTypeInt},
{"J", kMCJavaTypeLong},
{"F", kMCJavaTypeFloat},
{"D", kMCJavaTypeDouble},
{"[", kMCJavaTypeArray},
{"L", kMCJavaTypeObject}
};
typedef struct __MCJavaObject *MCJavaObjectRef;
bool MCJavaPrivateCallJNIMethod(MCNameRef p_class_name, void *p_method_id, int p_call_type, MCTypeInfoRef p_signature, void *r_return, void **p_args, uindex_t p_arg_count);
bool MCJavaPrivateCallJNIMethodOnEnv(void *p_env, MCNameRef p_class_name, void *p_method_id, int p_call_type, MCTypeInfoRef p_signature, void *r_return, void **p_args, uindex_t p_arg_count);
bool MCJavaPrivateObjectDescribe(MCValueRef p_value, MCStringRef &r_desc);
bool MCJavaPrivateConvertJStringToStringRef(MCJavaObjectRef p_object, MCStringRef &r_string);
bool MCJavaPrivateConvertStringRefToJString(MCStringRef p_string, MCJavaObjectRef &r_object);
bool MCJavaPrivateConvertDataRefToJByteArray(MCDataRef p_string, MCJavaObjectRef &r_object);
bool MCJavaPrivateConvertJByteArrayToDataRef(MCJavaObjectRef p_object, MCDataRef &r_string);
void* MCJavaPrivateGetMethodId(MCNameRef p_class_name, MCStringRef p_method_name, MCStringRef p_arguments, MCStringRef p_return, int p_call_type);
void MCJavaPrivateDestroyObject(MCJavaObjectRef p_object);
bool MCJavaPrivateCheckSignature(MCTypeInfoRef p_signature, MCStringRef p_args, MCStringRef p_return, int p_call_type);
bool MCJavaPrivateGetJObjectClassName(MCJavaObjectRef p_object, MCStringRef &r_name);
void* MCJavaPrivateGlobalRef(void *p_object);
bool MCJavaPrivateErrorThrow(MCTypeInfoRef p_error);
bool MCJavaPrivateErrorsInitialize();
void MCJavaPrivateErrorsFinalize();
extern MCTypeInfoRef kMCJavaNativeMethodIdErrorTypeInfo;
extern MCTypeInfoRef kMCJavaNativeMethodCallErrorTypeInfo;
extern MCTypeInfoRef kMCJavaBindingStringSignatureErrorTypeInfo;
extern MCTypeInfoRef kMCJavaCouldNotInitialiseJREErrorTypeInfo;
extern MCTypeInfoRef kMCJavaJRENotSupportedErrorTypeInfo;
extern MCTypeInfoRef kMCJavaInterfaceCallbackSignatureErrorTypeInfo;
#endif