ZFFramework
 
Loading...
Searching...
No Matches
ZFImpl_sys_Android_ZFAndroidReflect.h
1#ifndef _ZFI_ZFImpl_sys_Android_ZFAndroidReflect_h_
2#define _ZFI_ZFImpl_sys_Android_ZFAndroidReflect_h_
3
4#include "ZFImpl_sys_Android_def.h"
5
6#if ZF_ENV_sys_Android
7
9
10#define ZFImpl_sys_Android_JNI_ID_ZFAndroidReflect ZFImpl_sys_Android_JNI_ID(NativeUtil_ZFAndroidReflect)
11#define ZFImpl_sys_Android_JNI_NAME_ZFAndroidReflect ZFImpl_sys_Android_JNI_NAME(NativeUtil.ZFAndroidReflect)
12extern ZFLIB_ZF_impl jclass ZFImpl_sys_Android_jclassZFAndroidReflect(void);
13
14#define ZFImpl_sys_Android_JNI_ID_ZFAndroidReflect_InvokeResult ZFImpl_sys_Android_JNI_ID(NativeUtil_ZFAndroidReflect_00024InvokeResult)
15#define ZFImpl_sys_Android_JNI_NAME_ZFAndroidReflect_InvokeResult ZFImpl_sys_Android_JNI_NAME(NativeUtil.ZFAndroidReflect$InvokeResult)
16extern ZFLIB_ZF_impl jclass ZFImpl_sys_Android_jclassZFAndroidReflect_InvokeResult(void);
17
18zfclass ZFLIB_ZF_impl ZFAndroidProxyInfo : zfextend ZFObject {
19 ZFOBJECT_DECLARE(ZFAndroidProxyInfo, ZFObject)
20 ZFPROPERTY_ASSIGN(JNIGlobalRef, owner)
21 ZFPROPERTY_ASSIGN(zfstring, methodName)
22 ZFPROPERTY_ASSIGN(JNIGlobalRef, method)
24 ZFPROPERTY_ASSIGN(JNIGlobalRef, result)
25 ZFPROPERTY_ASSIGN(zfstring, errorHint)
26};
27
28zfclassLikePOD ZFLIB_ZF_impl ZFAndroidReflect {
29 ZFCORE_PARAM_DECLARE_SELF(ZFAndroidReflect)
30public:
32public:
33 jobject invokeDetail(
34 ZF_IN_OPT jobject obj
35 , ZF_IN const zfchar *name
37 , ZF_OUT_OPT zfbool *success = zfnull
38 , ZF_OUT_OPT zfstring *errorHint = zfnull
39 ) const;
40 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name) {return this->invokeDetail(obj, name);}
41 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
42 , ZF_IN jobject p0
43 );
44 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
45 , ZF_IN jobject p0
46 , ZF_IN jobject p1
47 );
48 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
49 , ZF_IN jobject p0
50 , ZF_IN jobject p1
51 , ZF_IN jobject p2
52 );
53 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
54 , ZF_IN jobject p0
55 , ZF_IN jobject p1
56 , ZF_IN jobject p2
57 , ZF_IN jobject p3
58 );
59 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
60 , ZF_IN jobject p0
61 , ZF_IN jobject p1
62 , ZF_IN jobject p2
63 , ZF_IN jobject p3
64 , ZF_IN jobject p4
65 );
66 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
67 , ZF_IN jobject p0
68 , ZF_IN jobject p1
69 , ZF_IN jobject p2
70 , ZF_IN jobject p3
71 , ZF_IN jobject p4
72 , ZF_IN jobject p5
73 );
74 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
75 , ZF_IN jobject p0
76 , ZF_IN jobject p1
77 , ZF_IN jobject p2
78 , ZF_IN jobject p3
79 , ZF_IN jobject p4
80 , ZF_IN jobject p5
81 , ZF_IN jobject p6
82 );
83 jobject invoke(ZF_IN_OPT jobject obj, ZF_IN const zfchar *name
84 , ZF_IN jobject p0
85 , ZF_IN jobject p1
86 , ZF_IN jobject p2
87 , ZF_IN jobject p3
88 , ZF_IN jobject p4
89 , ZF_IN jobject p5
90 , ZF_IN jobject p6
91 , ZF_IN jobject p7
92 );
93
94 zfint asInt(ZF_IN jobject v, ZF_IN_OPT zfint def = -1) const;
95 zfuint asUInt(ZF_IN jobject v, ZF_IN_OPT zfuint def = (zfuint)-1) const;
96 zfindex asIndex(ZF_IN jobject v, ZF_IN_OPT zfindex def = zfindexMax()) const;
97 zflong asLong(ZF_IN jobject v, ZF_IN_OPT zflong def = -1) const;
98 zffloat asFloat(ZF_IN jobject v, ZF_IN_OPT zffloat def = -1) const;
99 zfdouble asDouble(ZF_IN jobject v, ZF_IN_OPT zfdouble def = -1) const;
100
101 void asStringT(ZF_IN_OUT zfstring &ret, ZF_IN jobject v, ZF_IN_OPT const zfchar *def = zfnull) const;
102 zfstring asString(ZF_IN jobject v, ZF_IN_OPT const zfchar *def = zfnull) const;
103 void toStringT(ZF_IN_OUT zfstring &ret, ZF_IN jobject v) const;
104 zfstring toString(ZF_IN jobject v) const;
105
106 // create callback via java.lang.reflect.Proxy
107 // impl's param0 would be a ZFAndroidProxyInfo, and impl must:
108 // * set none empty ZFAndroidProxyInfo.errorHint if invoke fail
109 // * store ZFAndroidProxyInfo.result for method result
110 jobject implInterface(ZF_IN const zfchar *interfaceClass, ZF_IN const ZFListener &impl) const;
111};
112ZFTYPEID_ACCESS_ONLY_DECLARE(ZFLIB_ZF_impl, ZFAndroidReflect, ZFAndroidReflect)
113ZFTYPEID_ACCESS_ONLY_REG(ZFLIB_ZF_impl, ZFAndroidReflect, ZFAndroidReflect)
114
116#endif // #if ZF_ENV_sys_Android
117#endif // #ifndef _ZFI_ZFImpl_sys_Android_ZFAndroidReflect_h_
118
_ZFT_t_zfchar zfchar
char wrapper
Definition ZFCoreTypeDef_CharType.h:17
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:192
#define zfclassLikePOD
shows the class is not a POD type, but you may use it like a POD except memset it to 0
Definition ZFCoreTypeDef_ClassType.h:41
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
_ZFT_t_zfint zfint
same as int, see zfindex
Definition ZFCoreTypeDef_CoreType.h:165
#define zfindexMax()
(zfindex)-1, indicate a max index value, see zfindex
Definition ZFCoreTypeDef_CoreType.h:159
_zft_zffloat zffloat
same as float, see zfindex
Definition ZFCoreTypeDef_CoreType.h:183
_zft_zfdouble zfdouble
same as double, see zfindex
Definition ZFCoreTypeDef_CoreType.h:188
_zft_zflong zflong
long, see zfindex
Definition ZFCoreTypeDef_CoreType.h:173
#define zffalse
bool false type
Definition ZFCoreTypeDef_CoreType.h:111
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
_ZFT_t_zfuint zfuint
same as unsigned int, see zfindex
Definition ZFCoreTypeDef_CoreType.h:169
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFCORE_PARAM_DECLARE_SELF(T_self)
see ZFCORE_PARAM
Definition ZFCoreUtilMacro.h:495
#define ZFCORE_PARAM(T_ParamType, paramName,...)
a util macro to generate setter and getter for POD like object
Definition ZFCoreUtilMacro.h:523
#define ZFLIB_ZF_impl
used to export symbols
Definition ZFImpl_ZF_impl.h:15
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:128
#define ZFTYPEID_ACCESS_ONLY_REG(ZFLIB_, TypeName, Type,...)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:205
#define ZFTYPEID_ACCESS_ONLY_DECLARE(ZFLIB_, TypeName, Type)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:195
light weight array
Definition ZFCoreArray.h:331
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
base class of all objects
Definition ZFObjectCore.h:209