bindResource and bindResources implementation
authorSashi Penta <sashi.kumar.penta@intel.com>
Fri, 8 Aug 2014 17:33:32 +0000 (10:33 -0700)
committerSashi Penta <sashi.kumar.penta@intel.com>
Mon, 11 Aug 2014 17:26:51 +0000 (10:26 -0700)
Change-Id: I26747c1360ebc4f385474ee09e403af10b245253

OCLib/OCPlatform.cpp
include/OCPlatform.h

index c33b760..2321211 100644 (file)
@@ -126,30 +126,60 @@ namespace OC
     }
 
     // TODO: Implement
-    OCStackResult OCPlatform::bindResourceToContainer(OCResourceHandle containerHandle, OCResourceHandle addedResourceHandle)
+    OCStackResult OCPlatform::unbindResource(OCResourceHandle containerHandle, OCResourceHandle resourceHandle)
     {
         OCStackResult result = OC_STACK_OK;
         return result;
     }
 
     // TODO: Implement
-    OCStackResult OCPlatform::bindResourcesToContainer(OCResourceHandle containerHandle, std::vector<OCResourceHandle>& addedResourceHandleList)
+    OCStackResult OCPlatform::unbindResources(OCResourceHandle containerHandle, std::vector<OCResourceHandle>& resourceHandleList)
     {
         OCStackResult result = OC_STACK_OK;
         return result;
     }
 
-    // TODO: Implement
-    OCStackResult OCPlatform::unbindResource(OCResourceHandle containerHandle, OCResourceHandle resourceHandle)
+    OCStackResult bindResource(const OCResourceHandle containerHandle, const OCResourceHandle resourceHandle)
     {
         OCStackResult result = OC_STACK_OK;
+
+        try {
+            result = OCBindContainedResourceToResource(containerHandle, resourceHandle);
+        }
+        catch(std::exception e)
+        {
+            throw e;
+        }
+
         return result;
     }
 
-    // TODO: Implement
-    OCStackResult OCPlatform::unbindResources(OCResourceHandle containerHandle, std::vector<OCResourceHandle>& resourceHandleList)
+    OCStackResult bindResources(const OCResourceHandle containerHandle, const std::vector<OCResourceHandle>& resourceHandles)
     {
         OCStackResult result = OC_STACK_OK;
+
+        try {
+
+            std::vector<OCResourceHandle>::const_iterator it;
+
+            for(it = resourceHandles.begin(); it != resourceHandles.end(); it++)
+            {
+                result = OCBindContainedResourceToResource(containerHandle, *it);
+
+                if(result != OC_STACK_OK)
+                {
+                    // TODO Should we unbind the previous successful ones?
+                    // TODO should we return which are succesful
+                    // Currently just returns with any failure
+                    return result;
+                }
+            }
+        }
+        catch(std::exception e)
+        {
+            throw e;
+        }
+
         return result;
     }
 
index ceebb52..9b9bbb6 100644 (file)
@@ -143,7 +143,7 @@ namespace OC
         * Step 3: bindResourceToContainer(homeResourceHandle, kitchenResourceHandle);<br>
         * At the end of Step 3, resource "a/home" will contain a reference to "a/kitchen".<br> 
         */
-        OCStackResult bindResourceToContainer(OCResourceHandle containerHandle, OCResourceHandle addedResourceHandle);
+        OCStackResult bindResource(const OCResourceHandle containerHandle, const OCResourceHandle resourceHandle);
 
         /**
         * Add multiple resources to a container resource.
@@ -163,7 +163,7 @@ namespace OC
         * Step 5: bindResourceToContainer(homeResourceHandle, rList);<br>
         * At the end of Step 5, resource "a/home" will contain a references to "a/kitchen" and "a/room" <br>
         */
-        OCStackResult bindResourcesToContainer(OCResourceHandle containerHandle, std::vector<OCResourceHandle>& addedResourceHandleList);
+        OCStackResult bindResources(const OCResourceHandle containerHandle, const std::vector<OCResourceHandle>& addedResourceHandleList);
 
         /**
         * Unbind a resource from a container resource.
@@ -245,3 +245,5 @@ namespace OC
 }
 
 #endif //__OCPLATFORM_H
+
+