TASK_CONSUMER_REQ_DISCOVER = 8001,
TASK_CONSUMER_REQ_SUBSCRIBE = 8002,
TASK_CONSUMER_REQ_SUBSCRIBE_CANCEL = 8003,
- TASK_CONSUMER_RECV_SUBSCRIBE_CONFIRMED = 8004,
+ TASK_CONSUMER_SENT_REQ_OBSERVE = 8004,
TASK_CONSUMER_RECV_PROVIDER_CHANGED = 8005,
TASK_CONSUMER_RECV_MESSAGE = 8101,
connections = connections->next;
}
+ NSProvider_internal * taskProvider = NSCopyProvider_internal(provider_internal);
+ NSTask * task = NSMakeTask(TASK_CONSUMER_SENT_REQ_OBSERVE, (void *) taskProvider);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(task,
+ NS_ERROR, NSRemoveProvider_internal(taskProvider));
+
+ NSConsumerPushEvent(task);
+
return NS_OK;
}
NSTask * task = NSMakeTask(TASK_CONSUMER_PROVIDER_DELETED, addr);
NS_VERIFY_NOT_NULL(task, OC_STACK_KEEP_TRANSACTION);
+
+ NSConsumerPushEvent(task);
}
else if (payload->trigger == OC_PRESENCE_TRIGGER_CREATE)
NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *)1 : NULL);
}
+void NSConsumerHandleSubscribeSucceed(NSProvider_internal * provider)
+{
+ NS_VERIFY_NOT_NULL_V(provider);
+
+ NSResult ret = NSProviderCacheUpdate(provider);
+ NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *) 1 : NULL);
+}
+
void NSConsumerHandleRecvProviderChanged(NSMessage * msg)
{
NS_VERIFY_NOT_NULL_V(msg);
NS_LOG_V(DEBUG, "Receive Event : %d", (int)task->taskType);
switch (task->taskType)
{
- //case TASK_CONSUMER_RECV_SUBSCRIBE_CONFIRMED:
+ case TASK_CONSUMER_SENT_REQ_OBSERVE:
+ {
+ NS_LOG(DEBUG, "Receive Subscribe succeed from provider.");
+ NSConsumerHandleSubscribeSucceed((NSProvider_internal *)task->taskData);
+ NSRemoveProvider_internal((NSProvider_internal *)task->taskData);
+ break;
+ }
case TASK_CONSUMER_RECV_PROVIDER_CHANGED:
{
- //NS_LOG(DEBUG, "Receive Subscribe confirm from provider.");
NS_LOG(DEBUG, "Receive Provider Changed");
NSConsumerHandleRecvProviderChanged((NSMessage *)task->taskData);
NSRemoveMessage((NSMessage *)task->taskData);
case TASK_RECV_SYNCINFO:
case TASK_CONSUMER_RECV_MESSAGE:
case TASK_CONSUMER_PROVIDER_DISCOVERED:
+ case TASK_CONSUMER_SENT_REQ_OBSERVE:
case TASK_CONSUMER_RECV_PROVIDER_CHANGED:
case TASK_MAKE_SYNCINFO:
case TASK_CONSUMER_REQ_TOPIC_URI: