#define JNI_NO_NATIVE_POINTER 1001
#define JNI_INVALID_VALUE 1002
#define JNI_NO_SUCH_KEY 1003
+#define JNI_NO_SUPPORT 1004
jobject getOcException(JNIEnv* env, const char* file, const char* functionName, const int line,
const int code, const char* message);
extern JavaVM* g_jvm;
+extern jclass g_cls_byte1DArray;
+extern jclass g_cls_byte2DArray;
+extern jclass g_cls_byte3DArray;
extern jclass g_cls_Integer;
extern jclass g_cls_int1DArray;
extern jclass g_cls_int2DArray;
extern jclass g_cls_OcOicSecAcl;
extern jclass g_cls_OcOicSecPdAcl;
extern jclass g_cls_OcDirectPairDevice;
+#ifdef WITH_CLOUD
+extern jclass g_cls_OcAccountManager;
+#endif
+#ifdef __WITH_TLS__
+extern jclass g_cls_OcCloudProvisioning;
+#endif
extern jclass g_cls_OcOicSecAcl_ace;
extern jclass g_cls_OcOicSecAcl_resr;
extern jmethodID g_mid_OcSecureResource_ctor;
extern jmethodID g_mid_OcDirectPairDevice_ctor;
extern jmethodID g_mid_OcDirectPairDevice_dev_ctor;
+#ifdef WITH_CLOUD
+extern jmethodID g_mid_OcAccountManager_ctor;
+#endif
+#ifdef __WITH_TLS__
+extern jmethodID g_mid_OcCloudProvisioning_getIP;
+extern jmethodID g_mid_OcCloudProvisioning_getPort;
+#endif
extern jmethodID g_mid_OcOicSecAcl_get_rownerID;
extern jmethodID g_mid_OcOicSecAcl_get_aces;
extern jmethodID g_mid_OcOicSecPdAcl_get_recurrences;
-typedef void(*RemoveListenerCallback)(JNIEnv* env, jobject jListener);
+//typedef void(*RemoveListenerCallback)(JNIEnv* env, jobject jListener);
+typedef std::function<void(JNIEnv* env, jobject jListener)> RemoveListenerCallback;
static jfieldID GetHandleField(JNIEnv *env, jobject jobj)
{