#define LISTENER_TAG "NS_PROVIDER_LISTENER"
#define RESOURCE_TAG "NS_PROVIDER_RESOURCE"
+#define NS_ROOT_TYPE "oic.r.notification"
+#define NS_COLLECTION_MESSAGE_TYPE "oic.r.notification.message"
+#define NS_COLLECTION_SYNC_TYPE "oic.r.notification.sync"
+
+#define NS_DEFAULT_INTERFACE "oic.if.baseline"
+
+#define NS_ROOT_URI "/notification"
+#define NS_COLLECTION_MESSAGE_URI "/notification/message"
+#define NS_COLLECTION_SYNC_URI "/notification/sync"
+
typedef enum eConnectionState
{
DISCONNECTED = 0,
typedef enum eSchedulerType
{
- RESPONSE_SCHEDULER = 0,
+ CALLBACK_SCHEDULER = 0,
DISCOVERY_SCHEDULER = 1,
SUBSCRIPTION_SCHEDULER = 2,
NOTIFICATION_SCHEDULER = 3,
NS_RESOURCE_SYNC = 1001,
} NSResourceType;
-#endif /* _NS_CONSTANTS_H_ */
\ No newline at end of file
+#endif /* _NS_CONSTANTS_H_ */
NSMessage * nsMessage;\r
}NSCacheMsgData;\r
\r
+typedef struct\r
+{\r
+ OCResourceHandle handle;\r
+ int accepter;\r
+ char* message_uri;\r
+ char* sync_uri;\r
+} NSNotificationResource;\r
+\r
+typedef struct\r
+{\r
+ OCResourceHandle handle;\r
+ char* id;\r
+ char* title;\r
+ char* body;\r
+} NSMessageResource;\r
+\r
+typedef struct\r
+{\r
+ OCResourceHandle handle;\r
+ char* id;\r
+ char* state;\r
+} NSSyncResource;\r
+\r
#endif /* _NS_STRUCTS_H_ */\r
NSInitScheduler();\r
NSStartScheduler();\r
\r
-\r
NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
NSPushQueue(DISCOVERY_SCHEDULER, TASK_REGISTER_RESOURCE, NULL);\r
}\r
return NS_OK;\r
}\r
\r
-void * NSResponseSchedule(void * ptr)\r
+void * NSCallbackSchedule(void * ptr)\r
{\r
if (ptr == NULL)\r
{\r
NS_LOG(DEBUG, "Create NSReponseSchedule");\r
}\r
\r
- while (NSIsRunning[RESPONSE_SCHEDULER])\r
+ while (NSIsRunning[CALLBACK_SCHEDULER])\r
{\r
- sem_wait(&NSSemaphore[RESPONSE_SCHEDULER]);\r
- pthread_mutex_lock(&NSMutex[RESPONSE_SCHEDULER]);\r
+ sem_wait(&NSSemaphore[CALLBACK_SCHEDULER]);\r
+ pthread_mutex_lock(&NSMutex[CALLBACK_SCHEDULER]);\r
\r
- if (NSHeadMsg[RESPONSE_SCHEDULER] != NULL)\r
+ if (NSHeadMsg[CALLBACK_SCHEDULER] != NULL)\r
{\r
- NSTask *node = NSHeadMsg[RESPONSE_SCHEDULER];\r
- NSHeadMsg[RESPONSE_SCHEDULER] = node->nextTask;\r
+ NSTask *node = NSHeadMsg[CALLBACK_SCHEDULER];\r
+ NSHeadMsg[CALLBACK_SCHEDULER] = node->nextTask;\r
\r
switch (node->taskType)\r
{\r
OICFree(node);\r
}\r
\r
- pthread_mutex_unlock(&NSMutex[RESPONSE_SCHEDULER]);\r
+ pthread_mutex_unlock(&NSMutex[CALLBACK_SCHEDULER]);\r
\r
}\r
\r
return NULL;\r
}\r
\r
-NSResult NSTestStartPresence()\r
-{\r
- NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
- return NS_OK;\r
-}\r
-\r
-NSResult NSTestStopPresence()\r
-{\r
- NSPushQueue(DISCOVERY_SCHEDULER, TASK_STOP_PRESENCE, NULL);\r
- return NS_OK;\r
-}\r
-\r
-\r
return retSync;\r
}\r
\r
-NSResult NSMakeTask(NSTaskType type, OCEntityHandlerRequest *request, NSTask * task)\r
-{\r
- NS_LOG(DEBUG, "NSMakeTask - IN");\r
-\r
- task = (NSTask*) OICMalloc(sizeof(NSTask));\r
- if (!task)\r
- {\r
- NS_LOG(ERROR, "Fail to allocate memory");\r
- return NS_ERROR;\r
- }\r
-\r
- task->taskType = type;\r
- task->taskData = request;\r
- task->nextTask = NULL;\r
-\r
- NS_LOG(DEBUG, "NSMakeTask - OUT");\r
- return NS_OK;\r
-}\r
-\r
return NS_ERROR;
}
- OCRepPayloadSetUri(*msgPayload, NSGetNotificationMessageUri());
+ OCRepPayloadSetUri(*msgPayload, NS_COLLECTION_MESSAGE_URI);
if(msg->mId)
OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_ID, msg->mId);
if(msg->mTitle)
return NS_ERROR;
}
- OCRepPayloadSetUri(*syncPayload, NSGetNotificationSyncUri());
-
+ OCRepPayloadSetUri(*syncPayload, NS_COLLECTION_SYNC_URI);
if(sync->mMessageId)
{
OCRepPayloadSetPropString(*syncPayload, NS_ATTRIBUTE_ID, sync->mMessageId);
{
obArray[obCount++] = subData->messageObId;
}
-
it = it->next;
}
{
obArray[obCount++] = subData->syncObId;
}
-
it = it->next;
-
}
OCRepPayload* payload;
case TASK_RECV_READ:
NS_LOG(DEBUG, "CASE TASK_RECV_READ : ");
NSSendSync((NSSync*) node->taskData);
- NSPushQueue(RESPONSE_SCHEDULER, TASK_CB_SYNC, node->taskData);
+ NSPushQueue(CALLBACK_SCHEDULER, TASK_CB_SYNC, node->taskData);
break;
default:
\r
NSResult NSRegisterResource();\r
NSResult NSInitMessageList();\r
-NSResult NSPutNotificationMessage(NSMessage *, OCResourceHandle *);\r
-NSResult NSSendNotificationMessage(NSMessage *);\r
\r
#endif /* _NS_PROVIDER_NOTIFICATION_H_ */\r
#include "NSProviderResource.h"
-char* NSType = "oic.r.notification";
-char* NSMessageType = "oic.r.notification.message";
-char* NSSyncType = "oic.r.notification.sync";
-
-char* NSInterface = "oic.if.baseline";
-char* NSMessgeInterface = "oic.if.baseline.message";
-char* NSSyncInterface = "oic.if.baseline.sync";
-
-char* NSUri = "/notification";
-char* NSMessageUri = "/notification/message";
-char* NSSyncUri = "/notification/sync";
-
-/* Structure to represent notification resources */
-typedef struct
-{
- OCResourceHandle handle;
- int accepter;
- char* message_uri;
- char* sync_uri;
-} NSNotificationResource;
-
-typedef struct
-{
- OCResourceHandle handle;
- char* id;
- char* title;
- char* body;
-} NSMessageResource;
-
-typedef struct
-{
- OCResourceHandle handle;
- char* id;
- char* state;
-} NSSyncResource;
-
NSNotificationResource NotificationResource;
NSMessageResource NotificationMessageResource;
NSSyncResource NotificationSyncResource;
return NS_ERROR;
}
- if (strcmp(uri, NSUri) == 0)
+ if (strcmp(uri, NS_ROOT_URI) == 0)
{
-
NotificationResource.accepter = 0;
- NotificationResource.message_uri = NSMessageUri;
- NotificationResource.sync_uri = NSSyncUri;
+ NotificationResource.message_uri = NS_COLLECTION_MESSAGE_URI;
+ NotificationResource.sync_uri = NS_COLLECTION_SYNC_URI;
NotificationResource.handle = NULL;
- if (OCCreateResource(&NotificationResource.handle, NSType, NSInterface, NSUri,
- NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK)
+ if (OCCreateResource(&NotificationResource.handle, NS_ROOT_TYPE, NS_DEFAULT_INTERFACE,
+ NS_ROOT_URI, NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK)
{
NS_LOG(NS_ERROR, "Fail to Create Notification Resource");
return NS_ERROR;
}
}
- else if (strcmp(uri, NSMessageUri) == 0)
+ else if (strcmp(uri, NS_COLLECTION_MESSAGE_URI) == 0)
{
NotificationMessageResource.id = NULL;
NotificationMessageResource.body = NULL;
NotificationMessageResource.handle = NULL;
- if (OCCreateResource(&NotificationMessageResource.handle, NSMessageType, NSInterface,
- NSMessageUri, NSEntityHandlerMessageCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
+ if (OCCreateResource(&NotificationMessageResource.handle, NS_COLLECTION_MESSAGE_TYPE,
+ NS_DEFAULT_INTERFACE, NS_COLLECTION_MESSAGE_URI, NSEntityHandlerMessageCb, NULL,
+ OC_OBSERVABLE) != OC_STACK_OK)
{
NS_LOG(NS_ERROR, "Fail to Create Notification Message Resource");
return NS_ERROR;
}
}
- else if (strcmp(uri, NSSyncUri) == 0)
+ else if (strcmp(uri, NS_COLLECTION_SYNC_URI) == 0)
{
NotificationSyncResource.id = NULL;
NotificationSyncResource.state = NULL;
NotificationSyncResource.handle = NULL;
- if (OCCreateResource(&(NotificationSyncResource.handle), NSSyncType, NSInterface, NSSyncUri,
- NSEntityHandlerSyncCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
+ if (OCCreateResource(&(NotificationSyncResource.handle), NS_COLLECTION_SYNC_TYPE,
+ NS_DEFAULT_INTERFACE, NS_COLLECTION_SYNC_URI, NSEntityHandlerSyncCb, NULL,
+ OC_OBSERVABLE) != OC_STACK_OK)
{
NS_LOG(NS_ERROR, "Fail to Create Notification Sync Resource");
return NS_ERROR;
{
NS_LOG(DEBUG, "NSRegisterResource - IN");
- if (NSCreateResource(NSSyncUri) != NS_OK)
+ if (NSCreateResource(NS_COLLECTION_SYNC_URI) != NS_OK)
{
NS_LOG(ERROR, "Fail to register Sync Resource");
return NS_ERROR;
}
- if (NSCreateResource(NSMessageUri) != NS_OK)
+ if (NSCreateResource(NS_COLLECTION_MESSAGE_URI) != NS_OK)
{
NS_LOG(ERROR, "Fail to register Message Resource");
return NS_ERROR;
}
- if (NSCreateResource(NSUri) != NS_OK)
+ if (NSCreateResource(NS_ROOT_URI) != NS_OK)
{
NS_LOG(ERROR, "Fail to register Notification Resource");
return NS_ERROR;
NS_LOG(DEBUG, "NSPutNotificationResource - IN");
NotificationResource.accepter = accepter;
- NotificationResource.message_uri = NSMessageUri;
- NotificationResource.sync_uri = NSSyncUri;
+ NotificationResource.message_uri = NS_COLLECTION_MESSAGE_URI;
+ NotificationResource.sync_uri = NS_COLLECTION_SYNC_URI;
*handle = NotificationResource.handle;
NS_LOG(DEBUG, "NSPutSyncResource - OUT");
return NS_OK;
}
-
-const char* NSGetNotificationUri()
-{
- return NSUri;
-}
-
-const char* NSGetNotificationMessageUri()
-{
- return NSMessageUri;
-}
-
-const char* NSGetNotificationSyncUri()
-{
- return NSSyncUri;
-}
-
-NSResult NSCopyString(char** targetString, const char* sourceString)
-{
- if (sourceString)
- {
- *targetString = (char *) malloc(strlen(sourceString) + 1);
-
- if (*targetString)
- {
- strncpy(*targetString, sourceString, (strlen(sourceString) + 1));
- return NS_SUCCESS;
- }
- }
-
- return NS_FAIL;
-}
bool NSIsRunning[THREAD_COUNT] =\r
{ false, };\r
\r
-NSTask* NSHeadMsg[THREAD_COUNT] =\r
-{ 0, };\r
-NSTask* NSTailMsg[THREAD_COUNT] =\r
-{ 0, };\r
+NSTask* NSHeadMsg[THREAD_COUNT];\r
+NSTask* NSTailMsg[THREAD_COUNT];\r
\r
-void * NSResponseSchedule(void *ptr);\r
+void * NSCallbackSchedule(void *ptr);\r
void * NSDiscoverySchedule(void *ptr);\r
void * NSSubScriptionSchedule(void *ptr);\r
void * NSNotificationSchedule(void *ptr);\r
}\r
\r
NS_LOG(DEBUG, "NSInitScheduler - OUT");\r
+\r
return true;\r
}\r
\r
\r
switch (i)\r
{\r
- case RESPONSE_SCHEDULER:\r
+ case CALLBACK_SCHEDULER:\r
{\r
NS_LOG(DEBUG, "CASE RESPONSE_SCHEDULER :");\r
- pthread_create(&NSThread[i], NULL, NSResponseSchedule, NULL);\r
+ pthread_create(&NSThread[i], NULL, NSCallbackSchedule, NULL);\r
}\r
break;\r
\r
{\r
NS_LOG(DEBUG, "NSFreeData - IN");\r
\r
- if (type == RESPONSE_SCHEDULER)\r
+ if (type == CALLBACK_SCHEDULER)\r
{\r
switch (task->taskType)\r
{\r
break;\r
case TASK_CB_SYNC:\r
NS_LOG(DEBUG, "CASE TASK_CB_SYNC : Free");\r
- NSSync * sync = (NSSync*) task->taskData;\r
- NSFreeSync(sync);\r
+ NSFreeSync((NSSync*) task->taskData);\r
break;\r
default:\r
NS_LOG(DEBUG, "No Task Type");\r
NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest : Free ");\r
NSFreeOCEntityHandlerRequest((OCEntityHandlerRequest*) task->taskData);\r
break;\r
-\r
case TASK_SEND_ALLOW:\r
case TASK_SEND_DENY:\r
NS_LOG(DEBUG, "NSFreeConsumer : Free ");\r
- NSConsumer * consumer = (NSConsumer *) task->taskData;\r
- NSFreeConsumer(consumer);\r
+ NSFreeConsumer((NSConsumer *) task->taskData);\r
break;\r
default:\r
NS_LOG(DEBUG, "No Task Type");\r
return NS_ERROR;\r
}\r
\r
- OCRepPayloadSetUri(payload, NSGetNotificationUri());\r
+ OCRepPayloadSetUri(payload, NS_ROOT_URI);\r
OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_POLICY, NSGetSubscriptionAccepter());\r
- OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_MESSAGE, NSGetNotificationMessageUri());\r
- OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_SYNC, NSGetNotificationSyncUri());\r
+ OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_MESSAGE, NS_COLLECTION_MESSAGE_URI);\r
+ OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_SYNC, NS_COLLECTION_SYNC_URI);\r
\r
response.requestHandle = entityHandlerRequest->requestHandle;\r
response.resourceHandle = entityHandlerRequest->resource;\r
{\r
NS_LOG(DEBUG, "NSAskAcceptanceToUser - IN");\r
\r
- NSPushQueue(RESPONSE_SCHEDULER, TASK_CB_SUBSCRIPTION, entityHandlerRequest);\r
+ NSPushQueue(CALLBACK_SCHEDULER, TASK_CB_SUBSCRIPTION, entityHandlerRequest);\r
\r
NS_LOG(DEBUG, "NSAskAcceptanceToUser - OUT");\r
}\r
return NS_ERROR;\r
}\r
\r
- OCRepPayloadSetUri(payload, NSGetNotificationMessageUri());\r
+ OCRepPayloadSetUri(payload, NS_COLLECTION_MESSAGE_URI);\r
OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_ID, "0000-0000-0000-0000");\r
OCRepPayloadSetPropBool(payload, NS_ATTRIBUTE_ACCPETANCE, accepted);\r
\r