[IOT-1440] findResource() to return list of discovered resources.
[platform/upstream/iotivity.git] / resource / src / OCPlatform_impl.cpp
index f40c14c..7060a09 100644 (file)
@@ -209,6 +209,16 @@ namespace OC
                              errorHandler, QoS);
     }
 
+    OCStackResult OCPlatform_impl::findResourceList(const std::string& host,
+                                            const std::string& resourceName,
+                                            OCConnectivityType connectivityType,
+                                            FindResListCallback resourceHandler,
+                                            QualityOfService QoS)
+    {
+        return checked_guard(m_client, &IClientWrapper::ListenForResource2,
+                             host, resourceName, connectivityType, resourceHandler, QoS);
+    }
+
     OCStackResult OCPlatform_impl::getDeviceInfo(const std::string& host,
                                             const std::string& deviceURI,
                                             OCConnectivityType connectivityType,
@@ -382,22 +392,64 @@ namespace OC
                              std::ref(presenceHandle));
     }
 
+#ifdef WITH_CLOUD
     OCStackResult OCPlatform_impl::subscribeDevicePresence(OCPresenceHandle& presenceHandle,
                                                            const std::string& host,
-                                                           const QueryParamsList& queryParams,
+                                                           const std::vector<std::string>& di,
                                                            OCConnectivityType connectivityType,
                                                            ObserveCallback callback)
     {
         return checked_guard(m_client, &IClientWrapper::SubscribeDevicePresence,
-                             &presenceHandle, host, queryParams, connectivityType, callback);
+                             &presenceHandle, host, di, connectivityType, callback);
     }
+#endif
 
     OCStackResult OCPlatform_impl::sendResponse(const std::shared_ptr<OCResourceResponse> pResponse)
     {
         return checked_guard(m_server, &IServerWrapper::sendResponse,
                              pResponse);
     }
+#ifdef RD_CLIENT
+    OCStackResult OCPlatform_impl::publishResourceToRD(const std::string& host,
+                                                       OCConnectivityType connectivityType,
+                                                       ResourceHandles& resourceHandles,
+                                                       PublishResourceCallback callback)
+    {
+        return publishResourceToRD(host, connectivityType, resourceHandles,
+                                   callback, m_cfg.QoS);
+    }
 
+    OCStackResult OCPlatform_impl::publishResourceToRD(const std::string& host,
+                                                       OCConnectivityType connectivityType,
+                                                       ResourceHandles& resourceHandles,
+                                                       PublishResourceCallback callback,
+                                                       QualityOfService qos)
+    {
+        return checked_guard(m_server, &IServerWrapper::publishResourceToRD,
+                             host, connectivityType, resourceHandles, callback,
+                             static_cast<OCQualityOfService>(qos));
+    }
+
+    OCStackResult OCPlatform_impl::deleteResourceFromRD(const std::string& host,
+                                                        OCConnectivityType connectivityType,
+                                                        ResourceHandles& resourceHandles,
+                                                        DeleteResourceCallback callback)
+    {
+        return deleteResourceFromRD(host, connectivityType, resourceHandles, callback,
+                                    m_cfg.QoS);
+    }
+
+    OCStackResult OCPlatform_impl::deleteResourceFromRD(const std::string& host,
+                                                        OCConnectivityType connectivityType,
+                                                        ResourceHandles& resourceHandles,
+                                                        DeleteResourceCallback callback,
+                                                        QualityOfService qos)
+    {
+        return checked_guard(m_server, &IServerWrapper::deleteResourceFromRD,
+                             host, connectivityType, resourceHandles, callback,
+                             static_cast<OCQualityOfService>(qos));
+    }
+#endif
     std::weak_ptr<std::recursive_mutex> OCPlatform_impl::csdkLock()
     {
         return m_csdkLock;
@@ -428,119 +480,28 @@ namespace OC
                              peer, pmSel, pinNumber, resultCallback);
     }
 #ifdef WITH_CLOUD
-    OCStackResult OCPlatform_impl::signUp(const std::string& host,
-                                          const std::string& authProvider,
-                                          const std::string& authCode,
-                                          OCConnectivityType connectivityType,
-                                          PostCallback cloudConnectHandler)
-    {
-        const char* di = OCGetServerInstanceIDString();
-        if (!di)
+    OCAccountManager::Ptr OCPlatform_impl::constructAccountManagerObject(const std::string& host,
+                                                            OCConnectivityType connectivityType)
+    {
+        if (!m_client)
         {
-            oclog() << "The mode should be Server or Both to generate UUID" << std::flush;
-            return result_guard(OC_STACK_ERROR);
+            return std::shared_ptr<OCAccountManager>();
         }
-        std::string deviceId(di);
-
-        OCRepresentation rep;
-        rep.setValue(OC_RSRVD_DEVICE_ID, deviceId);
-        rep.setValue(OC_RSRVD_AUTHPROVIDER, authProvider);
-        rep.setValue(OC_RSRVD_AUTHCODE, authCode);
-
-        std::string uri = host + OC_RSRVD_ACCOUNT_URI;
-
-        OCDevAddr devAddr;
-        QueryParamsMap queryParams;
-        HeaderOptions headerOptions;
-
-        QualityOfService defaultQos = OC::QualityOfService::NaQos;
-        checked_guard(m_client, &IClientWrapper::GetDefaultQos, defaultQos);
 
-        return checked_guard(m_client, &IClientWrapper::PostResourceRepresentation,
-                             devAddr, uri, rep, queryParams, headerOptions,
-                             connectivityType, cloudConnectHandler, defaultQos);
-    }
-
-    OCStackResult OCPlatform_impl::signIn(const std::string& host,
-                                          const std::string& accessToken,
-                                          OCConnectivityType connectivityType,
-                                          PostCallback cloudConnectHandler)
-    {
-        return signInOut(host, accessToken, true, connectivityType, cloudConnectHandler);
-    }
-
-    OCStackResult OCPlatform_impl::signOut(const std::string& host,
-                                           const std::string& accessToken,
-                                           OCConnectivityType connectivityType,
-                                           PostCallback cloudConnectHandler)
-    {
-        return signInOut(host, accessToken, false, connectivityType, cloudConnectHandler);
+        return std::shared_ptr<OCAccountManager>(new OCAccountManager(m_client,
+                                                                      host,
+                                                                      connectivityType));
     }
+#endif // WITH_CLOUD
 
-    OCStackResult OCPlatform_impl::signInOut(const std::string& host,
-                                             const std::string& accessToken,
-                                             bool isSignIn,
-                                             OCConnectivityType connectivityType,
-                                             PostCallback cloudConnectHandler)
+    OCStackResult OCPlatform_impl::getDeviceId(OCUUIdentity *myUuid)
     {
-        const char* di = OCGetServerInstanceIDString();
-        if (!di)
-        {
-            oclog() << "The mode should be Server or Both to generate UUID" << std::flush;
-            return result_guard(OC_STACK_ERROR);
-        }
-        std::string deviceId(di);
-
-        OCRepresentation rep;
-        rep.setValue(OC_RSRVD_DEVICE_ID, deviceId);
-        rep.setValue(OC_RSRVD_ACCESS_TOKEN, accessToken);
-        rep.setValue(OC_RSRVD_STATUS, isSignIn);
-
-        std::string uri = host + OC_RSRVD_ACCOUNT_SESSION_URI;
-
-        OCDevAddr devAddr;
-        QueryParamsMap queryParams;
-        HeaderOptions headerOptions;
-
-        QualityOfService defaultQos = OC::QualityOfService::NaQos;
-        checked_guard(m_client, &IClientWrapper::GetDefaultQos, defaultQos);
-
-        return checked_guard(m_client, &IClientWrapper::PostResourceRepresentation,
-                             devAddr, uri, rep, queryParams, headerOptions,
-                             connectivityType, cloudConnectHandler, defaultQos);
+        return OCGetDeviceId(myUuid);
     }
 
-    OCStackResult OCPlatform_impl::refreshAccessToken(const std::string& host,
-                                                      const std::string& refreshToken,
-                                                      OCConnectivityType connectivityType,
-                                                      PostCallback cloudConnectHandler)
+    OCStackResult OCPlatform_impl::setDeviceId(const OCUUIdentity *myUuid)
     {
-        const char* di = OCGetServerInstanceIDString();
-        if (!di)
-        {
-            oclog() << "The mode should be Server or Both to generate UUID" << std::flush;
-            return result_guard(OC_STACK_ERROR);
-        }
-        std::string deviceId(di);
-
-        OCRepresentation rep;
-        rep.setValue(OC_RSRVD_DEVICE_ID, deviceId);
-        rep.setValue(OC_RSRVD_REFRESH_TOKEN, refreshToken);
-        rep.setValue(OC_RSRVD_GRANT_TYPE, OC_RSRVD_GRANT_TYPE_REFRESH_TOKEN);
-
-        std::string uri = host + OC_RSRVD_ACCOUNT_TOKEN_REFRESH_URI;
-
-        OCDevAddr devAddr;
-        QueryParamsMap queryParams;
-        HeaderOptions headerOptions;
-
-        QualityOfService defaultQos = OC::QualityOfService::NaQos;
-        checked_guard(m_client, &IClientWrapper::GetDefaultQos, defaultQos);
-
-        return checked_guard(m_client, &IClientWrapper::PostResourceRepresentation,
-                             devAddr, uri, rep, queryParams, headerOptions,
-                             connectivityType, cloudConnectHandler, defaultQos);
+        return OCSetDeviceId(myUuid);
     }
-#endif // WITH_CLOUD
 } //namespace OC