Porting TBStack Functionality to Arduino. The following changes were made
[platform/upstream/iotivity.git] / csdk / stack / src / ocresource.c
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #include <string.h>
22 #include "ocstack.h"
23 #include "ocstackinternal.h"
24 #include "ocresource.h"
25 #include "logger.h"
26 #include "debug.h"
27
28 /// Module Name
29 #define TAG PCF("ocresource")
30
31 extern OCResource *headResource;
32
33 static const char * VIRTUAL_RSRCS[] = {
34        "/oc/core",
35        "/oc/core/d",
36        "/oc/core/types/d",
37 };
38
39 TODO ("Does it make sense to make this method as inline")
40 const char * GetVirtualResourceUri( OCVirtualResources resource)
41 {
42     if (resource < OC_MAX_RESOURCES)
43     {
44         return VIRTUAL_RSRCS[resource];
45     }
46
47     return NULL;
48 }
49
50 uint8_t IsVirtualResource(const char* resourceUri)
51 {
52     for (int i = 0; i < OC_MAX_RESOURCES; i++)
53     {
54         if (strcmp(resourceUri, GetVirtualResourceUri((OCVirtualResources)i)) == 0)
55         {
56             return 1;
57         }
58     }
59     return 0;
60 }
61
62
63 OCResource *FindResourceByUri(const char* resourceUri)
64 {
65     OCResource * pointer = headResource;
66     while (pointer) {
67         if (strcmp(resourceUri, pointer->uri) == 0) {
68             return pointer;
69         }
70         pointer = pointer->next;
71     }
72     OC_LOG(INFO, TAG, PCF("Resource not found"));
73     return NULL;
74 }
75