replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / include / OCPlatform.h
index c6062b2..84e7163 100644 (file)
@@ -44,12 +44,27 @@ namespace OC
         * @note Any calls made to this AFTER the first call to OCPlatform::Instance
         * will have no affect
         */
-        void Configure(const PlatformConfig& config);
+        OCStackResult Configure(const PlatformConfig& config);
 
         // typedef for handle to cancel presence info with
         typedef OCDoHandle OCPresenceHandle;
 
         /**
+         * API for stop Base layer including resource and connectivity abstraction.
+         *
+         * @return Returns ::OC_STACK_OK if success.
+         */
+        OCStackResult stop();
+
+        /**
+         * API for start Base layer including resource and connectivity abstraction.
+         * OCInit will be invoked.
+         *
+         * @return Returns ::OC_STACK_OK if success.
+         */
+        OCStackResult start();
+
+        /**
          * API for notifying base that resource's attributes have changed.
          *
          * @param resourceHandle resource handle of the resource
@@ -173,6 +188,18 @@ namespace OC
                     OCConnectivityType connectivityType, FindCallback resourceHandler,
                     FindErrorCallback errorHandler, QualityOfService QoS);
 
+        OCStackResult findResourceList(const std::string& host, const std::string& resourceURI,
+                    OCConnectivityType connectivityType, FindResListCallback resourceHandler,
+                    QualityOfService QoS = QualityOfService::LowQos);
+
+        OCStackResult findResourceList(const std::string& host, const std::string& resourceURI,
+                    OCConnectivityType connectivityType, FindResListCallback resourceHandler,
+                    FindErrorCallback errorHandler, QualityOfService QoS = QualityOfService::LowQos);
+
+        OCStackResult setPropertyValue(OCPayloadType type, const std::string& tag, const std::string& value);
+        OCStackResult setPropertyValue(OCPayloadType type, const std::string& tag, const std::vector<std::string>& value);
+        OCStackResult getPropertyValue(OCPayloadType type, const std::string& tag, std::string& value);
+        OCStackResult getPropertyValue(OCPayloadType type, const std::string& tag, std::vector<std::string>& value);
         /**
          * API for Device Discovery
          *
@@ -266,6 +293,13 @@ namespace OC
         * first parameter can take fully qualified URI and core will take that as is for further
         * operations
         * @note OCStackResult is defined in ocstack.h.
+        * @note entity handler callback :
+        * When you set specific return value like OC_EH_CHANGED, OC_EH_CONTENT,
+        * OC_EH_SLOW and etc in entity handler callback,
+        * ocstack will be not send response automatically to client
+        * except for error return value like OC_EH_ERROR
+        * If you want to send response to client with specific result,
+        * OCDoResponse API should be called with the result value.
         */
         OCStackResult registerResource(OCResourceHandle& resourceHandle,
                         std::string& resourceURI,
@@ -310,6 +344,13 @@ namespace OC
         *                      any undefined resources or default actions.
         *                      if NULL is passed it removes the device default entity handler.
         * @return Returns ::OC_STACK_OK  if no errors and ::OC_STACK_ERROR in case of stack process error
+        * @note entity handler callback :
+        * When you set specific return value like OC_EH_CHANGED, OC_EH_CONTENT,
+        * OC_EH_SLOW and etc in entity handler callback,
+        * ocstack will be not send response automatically to client
+        * except for error return value like OC_EH_ERROR
+        * If you want to send response to client with specific result,
+        * sendResponse API should be called with the result value.
         */
         OCStackResult setDefaultDeviceEntityHandler(EntityHandler entityHandler);
 
@@ -663,103 +704,45 @@ namespace OC
         OCAccountManager::Ptr constructAccountManagerObject(const std::string& host,
                                                             OCConnectivityType connectivityType);
 #endif // WITH_CLOUD
-#ifdef RD_CLIENT
-        /**
-         * API for Virtual Resource("/oic/d" and "/oic/p") Publish to Resource Directory.
-         * @note This API applies to resource server side only.
-         *
-         * @param host Host IP Address of a service to direct resource publish query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param callback Handles callbacks, success states and failure states.
-         *
-         * @return Returns ::OC_STACK_OK if success.
-         */
-        OCStackResult publishResourceToRD(const std::string& host,
-                                          OCConnectivityType connectivityType,
-                                          PublishResourceCallback callback);
 
+#ifdef TCP_ADAPTER
         /**
-         * API for Resource Publish to Resource Directory.
-         * @note This API applies to resource server side only.
-         *
-         * @param host Host IP Address of a service to direct resource publish query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param resourceHandle resource handle of the resource.
-         * @param callback Handles callbacks, success states and failure states.
+         * gets OCRepresentation of KeepAlive resource from given host.
          *
+         * @param host         Host IP Address of KeepAlive resource
+         * @param resultCallback Function to callback with result code and OCRepresentation.
          * @return Returns ::OC_STACK_OK if success.
          */
-        OCStackResult publishResourceToRD(const std::string& host,
-                                          OCConnectivityType connectivityType,
-                                          ResourceHandles& resourceHandles,
-                                          PublishResourceCallback callback);
+        OCStackResult findKeepAliveResource(std::string host, KeepAliveCallback resultCallback);
 
         /**
-         * @overload
-         *
-         * @param host Host IP Address of a service to direct resource publish query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param resourceHandle resource handle of the resource.
-         * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
-         * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
-         * uint8_t, PublishResourceCallback)
-         */
-        OCStackResult publishResourceToRD(const std::string& host,
-                                          OCConnectivityType connectivityType,
-                                          ResourceHandles& resourceHandles,
-                                          PublishResourceCallback callback, QualityOfService QoS);
-
+        * send KeepAlive request to given host.
+        *
+        * @param rep            include interval time of expected pong response
+        * @param resultCallback handles callback
+        *
+        * @return Returns  ::OC_STACK_OK on success, some other value upon failure.
+        *
+        */
+        OCStackResult sendKeepAliveRequest(std::string host, const OCRepresentation& rep,
+                                                             KeepAliveCallback resultCallback);
+#endif
         /**
-         * API for published resource delete from Resource Directory.
-         * @note This API applies to resource server side only.
-         *
-         * @param host Host IP Address of a service to direct resource delete query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param callback Handles callbacks, success states and failure states.
+         * gets the deviceId of the client
          *
+         * @param deviceId pointer.
          * @return Returns ::OC_STACK_OK if success.
          */
-        OCStackResult deleteResourceFromRD(const std::string& host,
-                                           OCConnectivityType connectivityType,
-                                           DeleteResourceCallback callback);
+        OCStackResult getDeviceId(OCUUIdentity *deviceId);
 
         /**
-         * @overload
+         * sets the deviceId of the client
          *
-         * @param host Host IP Address of a service to direct resource delete query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param resourceHandle resource handle of the resource.
-         * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
-         * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
-         * uint8_t, PublishResourceCallback)
-         */
-        OCStackResult deleteResourceFromRD(const std::string& host,
-                                           OCConnectivityType connectivityType,
-                                           ResourceHandles& resourceHandles,
-                                           DeleteResourceCallback callback);
-
-        /**
-         * @overload
-         *
-         * @param host Host IP Address of a service to direct resource delete query.
-         * @param connectivityType ::OCConnectivityType type of connectivity.
-         * @param resourceHandle resource handle of the resource.
-         * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
-         * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
-         * uint8_t, PublishResourceCallback)
+         * @param deviceId pointer.
+         * @return Returns ::OC_STACK_OK if success.
          */
-        OCStackResult deleteResourceFromRD(const std::string& host,
-                                           OCConnectivityType connectivityType,
-                                           ResourceHandles& resourceHandles,
-                                           DeleteResourceCallback callback, QualityOfService QoS);
-#endif
+        OCStackResult setDeviceId(const OCUUIdentity *deviceId);
     }
 }
 
 #endif // OC_PLATFORM_H_
-
-
-