Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOnPresenceListener.h
1 /*\r
2 * //******************************************************************\r
3 * //\r
4 * // Copyright 2015 Intel Corporation.\r
5 * //\r
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
7 * //\r
8 * // Licensed under the Apache License, Version 2.0 (the "License");\r
9 * // you may not use this file except in compliance with the License.\r
10 * // You may obtain a copy of the License at\r
11 * //\r
12 * //      http://www.apache.org/licenses/LICENSE-2.0\r
13 * //\r
14 * // Unless required by applicable law or agreed to in writing, software\r
15 * // distributed under the License is distributed on an "AS IS" BASIS,\r
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17 * // See the License for the specific language governing permissions and\r
18 * // limitations under the License.\r
19 * //\r
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
21 */\r
22 #include "JniOcStack.h"\r
23 #include <mutex>\r
24 \r
25 #ifndef _Included_org_iotivity_base_OcPlatform_OnPresenceListener\r
26 #define _Included_org_iotivity_base_OcPlatform_OnPresenceListener\r
27 \r
28 class JniOnPresenceListener\r
29 {\r
30 public:\r
31     JniOnPresenceListener(JNIEnv *env, jobject jListener, RemoveListenerCallback removeListener);\r
32     ~JniOnPresenceListener();\r
33 \r
34     void onPresenceCallback(OCStackResult result, const unsigned int nonce, const std::string& hostAddress);\r
35     jweak getJWListener();\r
36 \r
37 private:\r
38     RemoveListenerCallback m_removeListenerCallback;\r
39     jweak m_jwListener;\r
40     void checkExAndRemoveListener(JNIEnv* env);\r
41 };\r
42 \r
43 #endif\r