Revert "[CONPRO-1333] Fix for crash in virtual device"
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcRDClient.h
1 /* ****************************************************************
2  *
3  * Copyright 2016 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  ******************************************************************/
20
21  #include "JniOcStack.h"
22  #include "JniOnPublishResourceListener.h"
23  #include "JniOnDeleteResourceListener.h"
24
25 #include <mutex>
26
27 #ifndef _Included_org_iotivity_base_RDClient
28 #define _Included_org_iotivity_base_RDClient
29
30 using namespace OC;
31
32 void RemoveOnPublishResourceListener(JNIEnv* env, jobject jListener);
33 JniOnPublishResourceListener* AddOnPublishResourceListener(JNIEnv* env, jobject jListener);
34
35 void RemoveOnDeleteResourceListener(JNIEnv* env, jobject jListener);
36 JniOnDeleteResourceListener* AddOnDeleteResourceListener(JNIEnv* env, jobject jListener);
37
38 std::map<jobject, std::pair<JniOnPublishResourceListener*, int>> onPublishResourceListenerMap;
39 std::map<jobject, std::pair<JniOnDeleteResourceListener*, int>> onDeleteResourceListenerMap;
40
41 std::mutex publishResourceListenerMapLock;
42 std::mutex deleteResourceListenerMapLock;
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48 /*
49  * Class:     org_iotivity_base_OcRDClient
50  * Method:    publishResourceToRD0
51  * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcRDClient/OnPublishResourceListener;I)V
52  */
53 JNIEXPORT void JNICALL Java_org_iotivity_base_OcRDClient_publishResourceToRD0
54     (JNIEnv *, jclass, jstring, jint, jobject, jint);
55
56 /*
57  * Class:     org_iotivity_base_OcRDClient
58  * Method:    publishResourceToRD1
59  * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle
60  *            ;Lorg/iotivity/base/OcRDClient/OnPublishResourceListener;I)V
61  */
62 JNIEXPORT void JNICALL Java_org_iotivity_base_OcRDClient_publishResourceToRD1
63     (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
64
65 /*
66  * Class:     org_iotivity_base_OcRDClient
67  * Method:    deleteResourceFromRD0
68  * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcRDClient/OnDeleteResourceListener;I)V
69  */
70 JNIEXPORT void JNICALL Java_org_iotivity_base_OcRDClient_deleteResourceFromRD0
71     (JNIEnv *, jclass, jstring, jint, jobject, jint);
72
73 /*
74  * Class:     org_iotivity_base_OcRDClient
75  * Method:    deleteResourceFromRD1
76  * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcRDClient/OnDeleteResourceListener;I)V
77  */
78 JNIEXPORT void JNICALL Java_org_iotivity_base_OcRDClient_deleteResourceFromRD1
79     (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
80
81 #ifdef __cplusplus
82 }
83 #endif
84 #endif