1 //******************************************************************
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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
11 // http://www.apache.org/licenses/LICENSE-2.0
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.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 #include "NSProviderResource.h"
23 const char* NSType = "oic.r.notification";
24 const char* NSMessageType = "oic.r.notification.message";
25 const char* NSSyncType = "oic.r.notification.sync";
27 const char* NSInterface = "oic.if.baseline";
28 const char* NSMessgeInterface = "oic.if.baseline.message";
29 const char* NSSyncInterface = "oic.if.baseline.sync";
31 const char* NSUri = "/notification";
32 const char* NSMessageUri = "/notification/message";
33 const char* NSSyncUri = "/notification/sync";
35 /* Structure to represent notification resources */
38 OCResourceHandle handle;
42 } NSNotificationResource;
46 OCResourceHandle handle;
54 OCResourceHandle handle;
60 NSNotificationResource NotificationResource;
61 NSMessageResource NotificationMessageResource;
62 NSSyncResource NotificationSyncResource;
64 NSResult NSCreateResource(char *uri)
68 OIC_LOG(ERROR, RESOURCE_TAG, "Resource URI cannot be NULL");
72 if (strcmp(uri, NSUri) == 0)
75 NotificationResource.accepter = 0;
76 NotificationResource.message_uri = NSMessageUri;
77 NotificationResource.sync_uri = NSSyncUri;
78 NotificationResource.handle = NULL;
80 if (OCCreateResource(&NotificationResource.handle, NSType, NSInterface, NSUri,
81 NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK)
83 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Resource"));
87 printf("NotificationResource.handle = %u\n", NotificationResource.handle);
91 else if (strcmp(uri, NSMessageUri) == 0)
94 NotificationMessageResource.id = NULL;
95 NotificationMessageResource.title = NULL;
96 NotificationMessageResource.body = NULL;
97 NotificationMessageResource.handle = NULL;
99 if (OCCreateResource(&NotificationMessageResource.handle, NSMessageType, NSInterface,
100 NSMessageUri, NSEntityHandlerMessageCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
102 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Message Resource"));
106 printf("NotificationMessageResource.handle = %u\n", NotificationMessageResource.handle);
110 else if (strcmp(uri, NSSyncUri) == 0)
112 NotificationSyncResource.id = NULL;
113 NotificationSyncResource.state = NULL;
114 NotificationSyncResource.device;
115 NotificationSyncResource.handle = NULL;
117 if (OCCreateResource(&(NotificationSyncResource.handle), NSSyncType, NSInterface, NSSyncUri,
118 NSEntityHandlerSyncCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
120 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Sync Resource"));
124 printf("NotificationSyncResource.handle = %u\n", NotificationSyncResource.handle);
129 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to create resource with invalid URI"));
136 NSResult NSRegisterResource()
138 OIC_LOG(INFO, RESOURCE_TAG, "NSRegisterResource");
140 if (NSCreateResource(NSSyncUri) != NS_OK)
142 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Sync Resource"));
146 if (NSCreateResource(NSMessageUri) != NS_OK)
148 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Message Resource"));
152 if (NSCreateResource(NSUri) != NS_OK)
154 OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Notification Resource"));
161 NSResult NSPutNotificationResource(int accepter, OCResourceHandle * handle)
163 NotificationResource.accepter = accepter;
164 NotificationResource.message_uri = NSMessageUri;
165 NotificationResource.sync_uri = NSSyncUri;
167 *handle = NotificationResource.handle;
172 NSResult NSPutMessageResource(NSMessage *msg, OCResourceHandle * handle)
174 OIC_LOG(INFO, RESOURCE_TAG, "Put notification message to Resource");
178 printf("msg is not null\n");
179 NotificationMessageResource.id = strdup(msg->mId);
180 NotificationMessageResource.title = strdup(msg->mTitle);
181 NotificationMessageResource.body = strdup(msg->mContentText);
185 printf("msg is null\n");
188 *handle = NotificationMessageResource.handle;
193 NSResult NSPutSyncResource(NSSync *sync, OCResourceHandle * handle)
195 OIC_LOG(INFO, RESOURCE_TAG, "Put notification sync to Resource");
197 *handle = NotificationSyncResource.handle;
202 const char* NSGetNotificationUri()
207 const char* NSGetNotificationMessageUri()
212 const char* NSGetNotificationSyncUri()
217 NSResult NSCopyString(char** targetString, const char* sourceString)
221 *targetString = (char *) malloc(strlen(sourceString) + 1);
225 strncpy(*targetString, sourceString, (strlen(sourceString) + 1));