Active Discovery Resource Type Filtering - C SDK & App Changes only.
[platform/upstream/iotivity.git] / resource / csdk / stack / include / ocstack.h
index 5fb0cc0..c6f5357 100644 (file)
@@ -115,12 +115,14 @@ typedef enum {
  * OC_SLOW         - When this bit is set, the resource has been marked as 'slow'. 'slow' signifies
  *                   that responses from this resource can expect delays in processing its
  *                   requests from clients.
+ * OC_SECURE       - When this bit is set, the resource is a secure resource.
  */
 typedef enum {
     OC_ACTIVE       = (1 << 0),
     OC_DISCOVERABLE = (1 << 1),
     OC_OBSERVABLE   = (1 << 2),
-    OC_SLOW         = (1 << 3)
+    OC_SLOW         = (1 << 3),
+    OC_SECURE       = (1 << 4)
 } OCResourceProperty;
 
 /**
@@ -390,6 +392,8 @@ OCStackResult OCProcess();
  *     OC_STACK_INVALID_CALLBACK - invalid callback function pointer
  *     OC_STACK_INVALID_METHOD   - invalid resource method
  *     OC_STACK_INVALID_URI      - invalid required or reference URI
+ *     OC_STACK_INVALID_QUERY    - number of resource types specified for filtering presence
+ *                                 notifications exceeds @ref MAX_PRESENCE_FILTERS.
  */
 OCStackResult OCDoResource(OCDoHandle *handle, OCMethod method, const char  *requiredUri, const char  *referenceUri,
                 const char *request, OCQualityOfService qos, OCCallbackData *cbData, OCHeaderOption * options,
@@ -480,6 +484,32 @@ OCStackResult OCCreateResource(OCResourceHandle *handle,
                                uint8_t resourceProperties);
 
 /**
+ * Create a resource. with host ip address for remote resource
+ *
+ * @param handle - pointer to handle to newly created resource.  Set by ocstack.
+ *                 Used to refer to resource
+ * @param resourceTypeName - name of resource type.  Example: "core.led"
+ * @param resourceInterfaceName - name of resource interface.  Example: "core.rw"
+ * @param host - HOST address of the remote resource.  Example:  "coap://xxx.xxx.xxx.xxx:xxxxx"
+ * @param uri - URI of the resource.  Example:  "/a/led"
+ * @param entityHandler - entity handler function that is called by ocstack to handle requests, etc
+ *                        NULL for default entity handler
+ * @param resourceProperties - properties supported by resource.
+ *                             Example: OC_DISCOVERABLE|OC_OBSERVABLE
+ *
+ * @return
+ *     OC_STACK_OK    - no errors
+ *     OC_STACK_ERROR - stack process error
+ */
+OCStackResult OCCreateResourceWithHost(OCResourceHandle *handle,
+                               const char *resourceTypeName,
+                               const char *resourceInterfaceName,
+                               const char *host,
+                               const char *uri,
+                               OCEntityHandler entityHandler,
+                               uint8_t resourceProperties);
+
+/**
  * Add a resource to a collection resource.
  *
  * @param collectionHandle - handle to the collection resource