2 *******************************************************************
4 * Copyright 2016 Samsung Electronics All Rights Reserved.
6 *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
20 *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 #include "JniOcAccountManager.h"
24 #include "JniOcRepresentation.h"
27 JniOcAccountManager::JniOcAccountManager(std::shared_ptr<OCAccountManager> accountManager)
28 : m_sharedAccountManager(accountManager)
32 JniOcAccountManager::~JniOcAccountManager()
34 LOGD("~JniOcAccountManager()");
36 m_sharedAccountManager = nullptr;
38 jint envRet = JNI_ERR;
39 JNIEnv *env = GetJNIEnv(envRet);
45 m_onGetManager.removeAllListeners(env);
46 m_onPostManager.removeAllListeners(env);
47 m_onDeleteManager.removeAllListeners(env);
48 m_onObserveManager.removeAllListeners(env);
50 if (JNI_EDETACHED == envRet)
52 g_jvm->DetachCurrentThread();
56 std::string JniOcAccountManager::host()
58 return m_sharedAccountManager->host();
61 OCConnectivityType JniOcAccountManager::connectivityType() const
63 return m_sharedAccountManager->connectivityType();
66 JniOcAccountManager* JniOcAccountManager::getJniOcAccountManagerPtr(JNIEnv *env, jobject thiz)
68 JniOcAccountManager *accountManager = GetHandle<JniOcAccountManager>(env, thiz);
69 if (env->ExceptionCheck())
71 LOGE("Failed to get native handle from OcAccountManager");
75 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
77 return accountManager;
80 JniOnGetListener* JniOcAccountManager::addOnGetListener(JNIEnv* env, jobject jListener)
82 return this->m_onGetManager.addListener(env, jListener, this);
85 JniOnPostListener* JniOcAccountManager::addOnPostListener(JNIEnv* env, jobject jListener)
87 return this->m_onPostManager.addListener(env, jListener, this);
90 JniOnDeleteListener* JniOcAccountManager::addOnDeleteListener(JNIEnv* env, jobject jListener)
92 return this->m_onDeleteManager.addListener(env, jListener, this);
95 JniOnObserveListener* JniOcAccountManager::addOnObserveListener(JNIEnv* env, jobject jListener)
97 return this->m_onObserveManager.addListener(env, jListener, this);
100 void JniOcAccountManager::removeOnGetListener(JNIEnv* env, jobject jListener)
102 this->m_onGetManager.removeListener(env, jListener);
105 void JniOcAccountManager::removeOnPostListener(JNIEnv* env, jobject jListener)
107 this->m_onPostManager.removeListener(env, jListener);
110 void JniOcAccountManager::removeOnDeleteListener(JNIEnv* env, jobject jListener)
112 this->m_onDeleteManager.removeListener(env, jListener);
115 void JniOcAccountManager::removeOnObserveListener(JNIEnv* env, jobject jListener)
117 this->m_onObserveManager.removeListener(env, jListener);
120 OCStackResult JniOcAccountManager::signUp(JNIEnv* env, const std::string& authProvider,
121 const std::string& authCode, jobject jListener)
123 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
125 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
126 const OCRepresentation& rep, const int eCode)
128 onPostListener->onPostCallback(opts, rep, eCode);
131 return m_sharedAccountManager->signUp(authProvider, authCode, postCallback);
134 OCStackResult JniOcAccountManager::signUp(JNIEnv* env, const std::string& authProvider,
135 const std::string& authCode,
136 const QueryParamsMap& options, jobject jListener)
138 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
140 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
141 const OCRepresentation& rep, const int eCode)
143 onPostListener->onPostCallback(opts, rep, eCode);
146 return m_sharedAccountManager->signUp(authProvider, authCode, options, postCallback);
149 OCStackResult JniOcAccountManager::signIn(JNIEnv* env, const std::string& userUuid,
150 const std::string& accessToken, jobject jListener)
152 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
154 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
155 const OCRepresentation& rep, const int eCode)
157 onPostListener->onPostCallback(opts, rep, eCode);
160 return m_sharedAccountManager->signIn(userUuid, accessToken, postCallback);
163 OCStackResult JniOcAccountManager::signOut(JNIEnv* env, jobject jListener)
165 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
167 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
168 const OCRepresentation& rep, const int eCode)
170 onPostListener->onPostCallback(opts, rep, eCode);
173 return m_sharedAccountManager->signOut(postCallback);
176 OCStackResult JniOcAccountManager::refreshAccessToken(JNIEnv* env, const std::string& userUuid,
177 const std::string& refreshToken,
180 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
182 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
183 const OCRepresentation& rep, const int eCode)
185 onPostListener->onPostCallback(opts, rep, eCode);
188 return m_sharedAccountManager->refreshAccessToken(userUuid, refreshToken, postCallback);
191 OCStackResult JniOcAccountManager::searchUser(JNIEnv* env, const std::string& userUuid,
194 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
196 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
197 const OCRepresentation& rep, const int eCode)
199 onGetListener->onGetCallback(opts, rep, eCode);
202 return m_sharedAccountManager->searchUser(userUuid, getCallback);
205 OCStackResult JniOcAccountManager::searchUser(JNIEnv* env, const QueryParamsMap& queryMap,
208 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
210 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
211 const OCRepresentation& rep, const int eCode)
213 onGetListener->onGetCallback(opts, rep, eCode);
216 return m_sharedAccountManager->searchUser(queryMap, getCallback);
219 OCStackResult JniOcAccountManager::deleteDevice(JNIEnv* env, const std::string& deviceId,
222 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
224 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
227 onDeleteListener->onDeleteCallback(opts, eCode);
230 return m_sharedAccountManager->deleteDevice(deviceId, deleteCallback);
233 OCStackResult JniOcAccountManager::createGroup(JNIEnv* env, AclGroupType groupType,
236 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
238 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
239 const OCRepresentation& rep, const int eCode)
241 onPostListener->onPostCallback(opts, rep, eCode);
244 return m_sharedAccountManager->createGroup(groupType, postCallback);
247 OCStackResult JniOcAccountManager::getGroupList(JNIEnv* env, jobject jListener)
249 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
251 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
252 const OCRepresentation& rep, const int eCode)
254 onGetListener->onGetCallback(opts, rep, eCode);
257 return m_sharedAccountManager->getGroupList(getCallback);
260 OCStackResult JniOcAccountManager::deleteGroup(JNIEnv* env, const std::string& groupId,
263 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
265 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
268 onDeleteListener->onDeleteCallback(opts, eCode);
271 return m_sharedAccountManager->deleteGroup(groupId, deleteCallback);
274 OCStackResult JniOcAccountManager::joinGroup(JNIEnv* env, const std::string& groupId,
277 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
279 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
280 const OCRepresentation& rep, const int eCode)
282 onPostListener->onPostCallback(opts, rep, eCode);
285 return m_sharedAccountManager->joinGroup(groupId, postCallback);
288 OCStackResult JniOcAccountManager::addDeviceToGroup(JNIEnv* env, const std::string& groupId,
289 const std::vector<std::string>& deviceId,
292 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
294 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
295 const OCRepresentation& rep, const int eCode)
297 onPostListener->onPostCallback(opts, rep, eCode);
300 return m_sharedAccountManager->addDeviceToGroup(groupId, deviceId, postCallback);
303 OCStackResult JniOcAccountManager::getGroupInfo(JNIEnv* env, const std::string& groupId,
306 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
308 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
309 const OCRepresentation& rep, const int eCode)
311 onGetListener->onGetCallback(opts, rep, eCode);
314 return m_sharedAccountManager->getGroupInfo(groupId, getCallback);
317 OCStackResult JniOcAccountManager::leaveGroup(JNIEnv* env, const std::string& groupId,
320 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
322 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
325 onDeleteListener->onDeleteCallback(opts, eCode);
328 return m_sharedAccountManager->leaveGroup(groupId, deleteCallback);
331 OCStackResult JniOcAccountManager::deleteDeviceFromGroup(JNIEnv* env, const std::string& groupId,
332 const std::vector<std::string>& deviceId,
335 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
337 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
340 onDeleteListener->onDeleteCallback(opts, eCode);
343 return m_sharedAccountManager->deleteDeviceFromGroup(groupId, deviceId, deleteCallback);
346 OCStackResult JniOcAccountManager::observeGroup(JNIEnv* env, const std::string& groupId,
349 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
351 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
352 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
354 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
357 return m_sharedAccountManager->observeGroup(groupId, observeCallback);
360 OCStackResult JniOcAccountManager::cancelObserveGroup(const std::string& groupId)
362 return m_sharedAccountManager->cancelObserveGroup(groupId);
365 OCStackResult JniOcAccountManager::observeInvitation(JNIEnv* env, jobject jListener)
367 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
369 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
370 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
372 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
375 return m_sharedAccountManager->observeInvitation(observeCallback);
378 OCStackResult JniOcAccountManager::cancelObserveInvitation()
380 return m_sharedAccountManager->cancelObserveInvitation();
383 OCStackResult JniOcAccountManager::sendInvitation(JNIEnv* env, const std::string& groupId,
384 const std::string& userUuid, jobject jListener)
386 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
388 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
389 const OCRepresentation& rep, const int eCode)
391 onPostListener->onPostCallback(opts, rep, eCode);
394 return m_sharedAccountManager->sendInvitation(groupId, userUuid, postCallback);
397 OCStackResult JniOcAccountManager::cancelInvitation(JNIEnv* env, const std::string& groupId,
398 const std::string& userUuid, jobject jListener)
400 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
402 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
405 onDeleteListener->onDeleteCallback(opts, eCode);
408 return m_sharedAccountManager->cancelInvitation(groupId, userUuid, deleteCallback);
411 OCStackResult JniOcAccountManager::deleteInvitation(JNIEnv* env, const std::string& groupId,
414 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
416 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
419 onDeleteListener->onDeleteCallback(opts, eCode);
422 return m_sharedAccountManager->deleteInvitation(groupId, deleteCallback);
427 * Class: org_iotivity_base_OcAccountManager
429 * Signature: ()Ljava/lang/String;
431 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcAccountManager_getHost
432 (JNIEnv *env, jobject thiz)
434 LOGD("OcAccountManager_getHost");
435 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
442 return env->NewStringUTF(accountManager->host().c_str());
446 * Class: org_iotivity_base_OcAccountManager
447 * Method: getConnectivityTypeN
450 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcAccountManager_getConnectivityTypeN
451 (JNIEnv *env, jobject thiz)
453 LOGD("OcAccountManager_getConnectivityType");
454 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
461 OCConnectivityType connectivityType = accountManager->connectivityType();
462 return static_cast<jint>(connectivityType);
466 * Class: org_iotivity_base_OcAccountManager
468 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
470 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_signUp0
471 (JNIEnv *env, jobject thiz, jstring jAuthProvider, jstring jAuthCode, jobject jListener)
473 LOGD("OcAccountManager_signUp");
476 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
480 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
487 std::string authProvider;
488 std::string authCode;
491 authProvider = env->GetStringUTFChars(jAuthProvider, nullptr);
495 authCode = env->GetStringUTFChars(jAuthCode, nullptr);
500 OCStackResult result = accountManager->signUp(env,
505 if (OC_STACK_OK != result)
507 ThrowOcException(result, "OcAccountManager_signUp");
510 catch (OCException& e)
512 LOGE("%s", e.reason().c_str());
513 ThrowOcException(e.code(), e.reason().c_str());
518 * Class: org_iotivity_base_OcAccountManager
520 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
522 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_signUp1
523 (JNIEnv *env, jobject thiz, jstring jAuthProvider, jstring jAuthCode, jobject jOptionsMap,
526 LOGD("OcAccountManager_signUp");
529 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
534 ThrowOcException(OC_STACK_INVALID_PARAM, "options cannot be null");
538 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
545 std::string authProvider;
546 std::string authCode;
549 authProvider = env->GetStringUTFChars(jAuthProvider, nullptr);
553 authCode = env->GetStringUTFChars(jAuthCode, nullptr);
556 QueryParamsMap optionsMap;
557 JniUtils::convertJavaMapToQueryParamsMap(env, jOptionsMap, optionsMap);
561 OCStackResult result = accountManager->signUp(env,
567 if (OC_STACK_OK != result)
569 ThrowOcException(result, "OcAccountManager_signUp");
572 catch (OCException& e)
574 LOGE("%s", e.reason().c_str());
575 ThrowOcException(e.code(), e.reason().c_str());
580 * Class: org_iotivity_base_OcAccountManager
582 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
584 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_signIn0
585 (JNIEnv *env, jobject thiz, jstring jUserUuid, jstring jAccessToken, jobject jListener)
587 LOGD("OcAccountManager_signIn");
590 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
594 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
601 std::string userUuid;
602 std::string accessToken;
605 userUuid = env->GetStringUTFChars(jUserUuid, nullptr);
609 accessToken = env->GetStringUTFChars(jAccessToken, nullptr);
614 OCStackResult result = accountManager->signIn(env,
619 if (OC_STACK_OK != result)
621 ThrowOcException(result, "OcAccountManager_signIn");
624 catch (OCException& e)
626 LOGE("%s", e.reason().c_str());
627 ThrowOcException(e.code(), e.reason().c_str());
632 * Class: org_iotivity_base_OcAccountManager
634 * Signature: (Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
636 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_signOut0
637 (JNIEnv *env, jobject thiz, jobject jListener)
639 LOGD("OcAccountManager_signOut");
642 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
646 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
655 OCStackResult result = accountManager->signOut(env,
658 if (OC_STACK_OK != result)
660 ThrowOcException(result, "OcAccountManager_signOut");
663 catch (OCException& e)
665 LOGE("%s", e.reason().c_str());
666 ThrowOcException(e.code(), e.reason().c_str());
671 * Class: org_iotivity_base_OcAccountManager
672 * Method: refreshAccessToken0
673 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
675 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_refreshAccessToken0
676 (JNIEnv *env, jobject thiz, jstring jUserUuid, jstring jRefreshAccessToken, jobject jListener)
678 LOGD("OcAccountManager_refreshAccessToken");
681 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
685 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
692 std::string userUuid;
693 std::string refreshAccessToken;
696 userUuid = env->GetStringUTFChars(jUserUuid, nullptr);
698 if (jRefreshAccessToken)
700 refreshAccessToken = env->GetStringUTFChars(jRefreshAccessToken, nullptr);
705 OCStackResult result = accountManager->refreshAccessToken(env,
710 if (OC_STACK_OK != result)
712 ThrowOcException(result, "OcAccountManager_refreshAccessToken");
715 catch (OCException& e)
717 LOGE("%s", e.reason().c_str());
718 ThrowOcException(e.code(), e.reason().c_str());
723 * Class: org_iotivity_base_OcAccountManager
724 * Method: searchUser0
725 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnGetListener;)V
727 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_searchUser0
728 (JNIEnv *env, jobject thiz, jstring jUserUuid, jobject jListener)
730 LOGD("OcAccountManager_searchUser");
733 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
737 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
744 std::string userUuid;
747 userUuid = env->GetStringUTFChars(jUserUuid, nullptr);
752 OCStackResult result = accountManager->searchUser(env,
756 if (OC_STACK_OK != result)
758 ThrowOcException(result, "OcAccountManager_searchUser");
761 catch (OCException& e)
763 LOGE("%s", e.reason().c_str());
764 ThrowOcException(e.code(), e.reason().c_str());
769 * Class: org_iotivity_base_OcAccountManager
770 * Method: searchUser1
771 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcAccountManager/OnGetListener;)V
773 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_searchUser1
774 (JNIEnv *env, jobject thiz, jobject jQueryMap, jobject jListener)
776 LOGD("OcAccountManager_searchUser");
779 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
784 ThrowOcException(OC_STACK_INVALID_PARAM, "queryMap cannot be null");
788 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
795 QueryParamsMap queryMap;
796 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryMap, queryMap);
800 OCStackResult result = accountManager->searchUser(env,
804 if (OC_STACK_OK != result)
806 ThrowOcException(result, "OcAccountManager_searchUser");
809 catch (OCException& e)
811 LOGE("%s", e.reason().c_str());
812 ThrowOcException(e.code(), e.reason().c_str());
817 * Class: org_iotivity_base_OcAccountManager
818 * Method: deleteDevice0
819 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
821 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_deleteDevice0
822 (JNIEnv *env, jobject thiz, jstring jDeviceId, jobject jListener)
824 LOGD("OcAccountManager_deleteDevice");
827 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
831 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
838 std::string deviceId;
841 deviceId = env->GetStringUTFChars(jDeviceId, nullptr);
846 OCStackResult result = accountManager->deleteDevice(env,
850 if (OC_STACK_OK != result)
852 ThrowOcException(result, "OcAccountManager_deleteDevice");
855 catch (OCException& e)
857 LOGE("%s", e.reason().c_str());
858 ThrowOcException(e.code(), e.reason().c_str());
863 * Class: org_iotivity_base_OcAccountManager
864 * Method: createGroup0
865 * Signature: (Lorg/iotivity/base/AclGroupType;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
867 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_createGroup0
868 (JNIEnv *env, jobject thiz, jint groupType, jobject jListener)
870 LOGD("OcAccountManager_createGroup");
873 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
877 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
886 OCStackResult result = accountManager->createGroup(env,
887 JniUtils::getAclGroupType(env, static_cast<int>(groupType)),
890 if (OC_STACK_OK != result)
892 ThrowOcException(result, "OcAccountManager_createGroup");
895 catch (OCException& e)
897 LOGE("%s", e.reason().c_str());
898 ThrowOcException(e.code(), e.reason().c_str());
903 * Class: org_iotivity_base_OcAccountManager
904 * Method: getGroupList0
905 * Signature: (Lorg/iotivity/base/OcAccountManager/OnGetListener;)V
907 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_getGroupList0
908 (JNIEnv *env, jobject thiz, jobject jListener)
910 LOGD("OcAccountManager_getGroupList");
913 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
917 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
926 OCStackResult result = accountManager->getGroupList(env,
929 if (OC_STACK_OK != result)
931 ThrowOcException(result, "OcAccountManager_getGroupList");
934 catch (OCException& e)
936 LOGE("%s", e.reason().c_str());
937 ThrowOcException(e.code(), e.reason().c_str());
942 * Class: org_iotivity_base_OcAccountManager
943 * Method: deleteGroup0
944 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
946 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_deleteGroup0
947 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
949 LOGD("OcAccountManager_deleteGroup");
952 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
956 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
966 groupId = env->GetStringUTFChars(jGroupId, nullptr);
971 OCStackResult result = accountManager->deleteGroup(env,
975 if (OC_STACK_OK != result)
977 ThrowOcException(result, "OcAccountManager_deleteGroup");
980 catch (OCException& e)
982 LOGE("%s", e.reason().c_str());
983 ThrowOcException(e.code(), e.reason().c_str());
988 * Class: org_iotivity_base_OcAccountManager
990 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
992 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_joinGroup0
993 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
995 LOGD("OcAccountManager_joinGroup");
998 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1002 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1004 if (!accountManager)
1009 std::string groupId;
1012 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1017 OCStackResult result = accountManager->joinGroup(env,
1021 if (OC_STACK_OK != result)
1023 ThrowOcException(result, "OcAccountManager_joinGroup");
1026 catch (OCException& e)
1028 LOGE("%s", e.reason().c_str());
1029 ThrowOcException(e.code(), e.reason().c_str());
1034 * Class: org_iotivity_base_OcAccountManager
1035 * Method: addDeviceToGroup0
1036 * Signature: (Ljava/lang/String;[Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
1038 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_addDeviceToGroup0
1039 (JNIEnv *env, jobject thiz, jstring jGroupId, jobjectArray jDeviceIdArray, jobject jListener)
1041 LOGD("OcAccountManager_addDeviceToGroup");
1044 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1047 if (!jDeviceIdArray)
1049 ThrowOcException(OC_STACK_INVALID_PARAM, "deviceId cannot be null");
1053 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1055 if (!accountManager)
1060 std::string groupId;
1063 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1066 std::vector<std::string> deviceIds;
1067 JniUtils::convertJavaStrArrToStrVector(env, jDeviceIdArray, deviceIds);
1071 OCStackResult result = accountManager->addDeviceToGroup(env,
1076 if (OC_STACK_OK != result)
1078 ThrowOcException(result, "OcAccountManager_addDeviceToGroup");
1081 catch (OCException& e)
1083 LOGE("%s", e.reason().c_str());
1084 ThrowOcException(e.code(), e.reason().c_str());
1089 * Class: org_iotivity_base_OcAccountManager
1090 * Method: getGroupInfo0
1091 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnGetListener;)V
1093 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_getGroupInfo0
1094 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
1096 LOGD("OcAccountManager_getGroupInfo");
1099 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
1103 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1105 if (!accountManager)
1110 std::string groupId;
1113 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1118 OCStackResult result = accountManager->getGroupInfo(env,
1122 if (OC_STACK_OK != result)
1124 ThrowOcException(result, "OcAccountManager_getGroupInfo");
1127 catch (OCException& e)
1129 LOGE("%s", e.reason().c_str());
1130 ThrowOcException(e.code(), e.reason().c_str());
1135 * Class: org_iotivity_base_OcAccountManager
1136 * Method: leaveGroup0
1137 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
1139 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_leaveGroup0
1140 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
1142 LOGD("OcAccountManager_leaveGroup");
1145 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1149 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1151 if (!accountManager)
1156 std::string groupId;
1159 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1164 OCStackResult result = accountManager->leaveGroup(env,
1168 if (OC_STACK_OK != result)
1170 ThrowOcException(result, "OcAccountManager_leaveGroup");
1173 catch (OCException& e)
1175 LOGE("%s", e.reason().c_str());
1176 ThrowOcException(e.code(), e.reason().c_str());
1181 * Class: org_iotivity_base_OcAccountManager
1182 * Method: deleteDeviceFromGroup0
1183 * Signature: (Ljava/lang/String;[Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
1185 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_deleteDeviceFromGroup0
1186 (JNIEnv *env, jobject thiz, jstring jGroupId, jobjectArray jDeviceIdArray, jobject jListener)
1188 LOGD("OcAccountManager_deleteDeviceFromGroup");
1191 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1194 if (!jDeviceIdArray)
1196 ThrowOcException(OC_STACK_INVALID_PARAM, "deviceId cannot be null");
1200 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1202 if (!accountManager)
1207 std::string groupId;
1210 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1213 std::vector<std::string> deviceIds;
1214 JniUtils::convertJavaStrArrToStrVector(env, jDeviceIdArray, deviceIds);
1218 OCStackResult result = accountManager->deleteDeviceFromGroup(env,
1223 if (OC_STACK_OK != result)
1225 ThrowOcException(result, "OcAccountManager_deleteDeviceFromGroup");
1228 catch (OCException& e)
1230 LOGE("%s", e.reason().c_str());
1231 ThrowOcException(e.code(), e.reason().c_str());
1236 * Class: org_iotivity_base_OcAccountManager
1237 * Method: observeGroup0
1238 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcResource/OnObserveListener;)V
1240 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_observeGroup0
1241 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
1243 LOGD("OcAccountManager_observeGroup");
1246 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
1250 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1252 if (!accountManager)
1257 std::string groupId;
1260 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1265 OCStackResult result = accountManager->observeGroup(env,
1269 if (OC_STACK_OK != result)
1271 ThrowOcException(result, "OcAccountManager_observeGroup");
1274 catch (OCException& e)
1276 LOGE("%s", e.reason().c_str());
1277 ThrowOcException(e.code(), e.reason().c_str());
1282 * Class: org_iotivity_base_OcAccountManager
1283 * Method: cancelObserveGroup0
1284 * Signature: (Ljava/lang/String;)V
1286 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_cancelObserveGroup0
1287 (JNIEnv *env, jobject thiz, jstring jGroupId)
1289 LOGD("OcAccountManager_cancelObserveGroup");
1291 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1293 if (!accountManager)
1298 std::string groupId;
1301 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1306 OCStackResult result = accountManager->cancelObserveGroup(groupId);
1308 if (OC_STACK_OK != result)
1310 ThrowOcException(result, "OcAccountManager_cancelObserveGroup");
1313 catch (OCException& e)
1315 LOGE("%s", e.reason().c_str());
1316 ThrowOcException(e.code(), e.reason().c_str());
1321 * Class: org_iotivity_base_OcAccountManager
1322 * Method: observeInvitation0
1323 * Signature: (Lorg/iotivity/base/OcResource/OnObserveListener;)V
1325 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_observeInvitation0
1326 (JNIEnv *env, jobject thiz, jobject jListener)
1328 LOGD("OcAccountManager_observeInvitation");
1331 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
1335 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1337 if (!accountManager)
1344 OCStackResult result = accountManager->observeInvitation(env,
1347 if (OC_STACK_OK != result)
1349 ThrowOcException(result, "OcAccountManager_observeInvitation");
1352 catch (OCException& e)
1354 LOGE("%s", e.reason().c_str());
1355 ThrowOcException(e.code(), e.reason().c_str());
1360 * Class: org_iotivity_base_OcAccountManager
1361 * Method: cancelObserveInvitation0
1364 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_cancelObserveInvitation0
1365 (JNIEnv *env, jobject thiz)
1367 LOGD("OcAccountManager_cancelObserveInvitation");
1369 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1371 if (!accountManager)
1378 OCStackResult result = accountManager->cancelObserveInvitation();
1380 if (OC_STACK_OK != result)
1382 ThrowOcException(result, "OcAccountManager_cancelObserveInvitation");
1385 catch (OCException& e)
1387 LOGE("%s", e.reason().c_str());
1388 ThrowOcException(e.code(), e.reason().c_str());
1393 * Class: org_iotivity_base_OcAccountManager
1394 * Method: sendInvitation0
1395 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/OnPostListener;)V
1397 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_sendInvitation0
1398 (JNIEnv *env, jobject thiz, jstring jGroupId, jstring jUserUuid, jobject jListener)
1400 LOGD("OcAccountManager_sendInvitation");
1403 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1407 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1409 if (!accountManager)
1414 std::string groupId, userUuid;
1417 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1421 userUuid = env->GetStringUTFChars(jUserUuid, nullptr);
1426 OCStackResult result = accountManager->sendInvitation(env,
1431 if (OC_STACK_OK != result)
1433 ThrowOcException(result, "OcAccountManager_sendInvitation");
1436 catch (OCException& e)
1438 LOGE("%s", e.reason().c_str());
1439 ThrowOcException(e.code(), e.reason().c_str());
1444 * Class: org_iotivity_base_OcAccountManager
1445 * Method: cancelInvitation0
1446 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
1448 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_cancelInvitation0
1449 (JNIEnv *env, jobject thiz, jstring jGroupId, jstring jUserUuid, jobject jListener)
1451 LOGD("OcAccountManager_cancelInvitation");
1454 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1458 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1460 if (!accountManager)
1465 std::string groupId, userUuid;
1468 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1472 userUuid = env->GetStringUTFChars(jUserUuid, nullptr);
1477 OCStackResult result = accountManager->cancelInvitation(env,
1482 if (OC_STACK_OK != result)
1484 ThrowOcException(result, "OcAccountManager_cancelInvitation");
1487 catch (OCException& e)
1489 LOGE("%s", e.reason().c_str());
1490 ThrowOcException(e.code(), e.reason().c_str());
1495 * Class: org_iotivity_base_OcAccountManager
1496 * Method: deleteInvitation0
1497 * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcAccountManager/onDeleteListener;)V
1499 JNIEXPORT void JNICALL Java_org_iotivity_base_OcAccountManager_deleteInvitation0
1500 (JNIEnv *env, jobject thiz, jstring jGroupId, jobject jListener)
1502 LOGD("OcAccountManager_deleteInvitation");
1505 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1509 JniOcAccountManager *accountManager = JniOcAccountManager::getJniOcAccountManagerPtr(env,
1511 if (!accountManager)
1516 std::string groupId;
1519 groupId = env->GetStringUTFChars(jGroupId, nullptr);
1524 OCStackResult result = accountManager->deleteInvitation(env,
1528 if (OC_STACK_OK != result)
1530 ThrowOcException(result, "OcAccountManager_deleteInvitation");
1533 catch (OCException& e)
1535 LOGE("%s", e.reason().c_str());
1536 ThrowOcException(e.code(), e.reason().c_str());