Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniListenerManager.cpp
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 //\r
23 //#include "JniListenerManager.h"\r
24 //\r
25 //#include "JniOnGetListener.h"\r
26 //\r
27 //template<class T>\r
28 //T* JniListenerManager<T>::addListener(JNIEnv* env, jobject jListener)\r
29 //{\r
30 //      T *onEventListener = NULL;\r
31 //\r
32 //      m_mapMutex.lock();\r
33 //\r
34 //      for (auto it = m_listenerMap.begin(); it != m_listenerMap.end(); ++it)\r
35 //      {\r
36 //              if (env->IsSameObject(jListener, it->first))\r
37 //              {\r
38 //                      auto refPair = it->second;\r
39 //                      onEventListener = refPair.first;\r
40 //                      refPair.second++;\r
41 //                      it->second = refPair;\r
42 //                      m_listenerMap.insert(*it);\r
43 //                      LOGD("OnEventListener: ref. count is incremented");\r
44 //                      break;\r
45 //              }\r
46 //      }\r
47 //\r
48 //      if (!onEventListener)\r
49 //      {\r
50 //              onEventListener = new T(env, jListener, this);\r
51 //              jobject jgListener = env->NewGlobalRef(jListener);\r
52 //\r
53 //              m_listenerMap.insert(std::pair<jobject, std::pair<T*, int>>(jgListener, std::pair<T*, int>(onEventListener, 1)));\r
54 //              LOGD("OnEventListener: new listener");\r
55 //      }\r
56 //\r
57 //      m_mapMutex.unlock();\r
58 //\r
59 //      return onEventListener;\r
60 //}\r
61 //\r
62 //template<class T>\r
63 //void JniListenerManager<T>::removeListener(JNIEnv* env, jobject jListener)\r
64 //{\r
65 //      m_mapMutex.lock();\r
66 //\r
67 //      bool isFound = false;\r
68 //\r
69 //      for (auto it = m_listenerMap.begin(); it != m_listenerMap.end(); ++it)\r
70 //      {\r
71 //              if (env->IsSameObject(jListener, it->first))\r
72 //              {\r
73 //                      auto refPair = it->second;\r
74 //                      if (refPair.second > 1)\r
75 //                      {\r
76 //                              refPair.second--;\r
77 //                              it->second = refPair;\r
78 //                              m_listenerMap.insert(*it);\r
79 //                              LOGI("OnEventListener: ref. count is decremented");\r
80 //                      }\r
81 //                      else\r
82 //                      {\r
83 //                              env->DeleteGlobalRef(it->first);\r
84 //                              T* listener = refPair.first;\r
85 //                              delete listener;\r
86 //                              m_listenerMap.erase(it);\r
87 //\r
88 //                              LOGI("OnEventListener is removed");\r
89 //                      }\r
90 //\r
91 //                      isFound = true;\r
92 //                      break;\r
93 //              }\r
94 //      }\r
95 //\r
96 //      if (!isFound)\r
97 //      {\r
98 //              ThrowOcException(JNI_EXCEPTION, "OnEventListener isn't found");\r
99 //      }\r
100 //\r
101 //      m_mapMutex.unlock();\r
102 //}\r
103 //\r