bool isExit = false;\r
std::string REMOTE_SERVER_ADDRESS;\r
std::string mainProvider;\r
+uint64_t mainMessageId = 0;\r
\r
FILE* server_fopen(const char *path, const char *mode)\r
{\r
\r
void onNotificationPostedCb(OIC::Service::NSMessage *notification)\r
{\r
+ std::cout << "------------------------------------" << std::endl;\r
+ std::cout << "Message Received " << std::endl;\r
+ std::cout << "------------------------------------" << std::endl;\r
std::cout << "id : " << notification->getMessageId() << std::endl;\r
std::cout << "title : " << notification->getTitle() << std::endl;\r
std::cout << "content : " << notification->getContentText() << std::endl;\r
std::cout << "source : " << notification->getSourceName() << std::endl;\r
std::cout << "topic : " << notification->getTopic() << std::endl;\r
-\r
- auto provider = NSConsumerService::getInstance()->getProvider(notification->getProviderId());\r
- if (provider != nullptr)\r
+ std::cout << "type : " << (int) notification->getType() << std::endl;\r
+ std::cout << "TTL : " << notification->getTTL() << std::endl;\r
+ std::cout << "time : " << notification->getTime() << std::endl;\r
+ if(notification->getMediaContents() != nullptr)\r
+ {\r
+ std::cout << "MediaContents IconImage : " << notification->getMediaContents()->getIconImage()\r
+ << std::endl;\r
+ }\r
+ std::cout << "ExtraInfo " << std::endl;\r
+ OC::OCRepresentation rep = notification->getExtraInfo();\r
+ for(auto it : rep.getResourceTypes())\r
+ {\r
+ std::cout << "resourceType : " << it << std::endl;\r
+ }\r
+ for(auto it : rep.getResourceInterfaces())\r
{\r
- provider->sendSyncInfo(notification->getMessageId(),\r
- OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ std::cout << "Interface : " << it << std::endl;\r
}\r
+ for(auto it : rep.getValues())\r
+ {\r
+ std::cout << "Key : " << it.first << std::endl;\r
+ }\r
+ mainMessageId = notification->getMessageId();\r
}\r
\r
void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)\r
{\r
+ std::cout << "------------------------------------" << std::endl;\r
+ std::cout << "SyncInfo Received " << std::endl;\r
+ std::cout << "------------------------------------" << std::endl;\r
std::cout << "Sync ID : " << sync->getMessageId() << std::endl;\r
+ std::cout << "Provider ID : " << sync->getProviderId() << std::endl;\r
std::cout << "Sync STATE : " << (int) sync->getState() << std::endl;\r
}\r
\r
else if (state == OIC::Service::NSProviderState::DENY)\r
{\r
std::cout << "Provider Subscription Denied" << std::endl;\r
+ std::cout << "------------------------------------" << std::endl;\r
}\r
else if (state == OIC::Service::NSProviderState::TOPIC)\r
{\r
else if (state == OIC::Service::NSProviderState::STOPPED)\r
{\r
std::cout << "Provider Stopped" << std::endl;\r
+ std::cout << "------------------------------------" << std::endl;\r
}\r
}\r
\r
void onDiscoverNotificationCb(OIC::Service::NSProvider *provider)\r
{\r
- std::cout << "notification resource discovered" << std::endl;\r
+ std::cout << "Notification Resource Discovered" << std::endl;\r
std::cout << "SetListeners for callbacks" << std::endl;\r
+ std::cout << "ProviderID : " << provider->getProviderId() << std::endl;\r
provider->setListener(onProviderStateChangedCb, onNotificationPostedCb, onNotificationSyncCb);\r
if (!provider->isSubscribed())\r
{\r
\r
std::cout << "1. Start Consumer" << std::endl;\r
std::cout << "2. Stop Consumer" << std::endl;\r
- std::cout << "3. GetTopicList" << std::endl;\r
- std::cout << "4. UpdateTopicList" << std::endl;\r
+ std::cout << "3. SendSyncInfo" << std::endl;\r
+ std::cout << "4. GetTopicList" << std::endl;\r
+ std::cout << "5. UpdateTopicList" << std::endl;\r
#ifdef WITH_CLOUD\r
- std::cout << "5. Enable NS Consumer RemoteService" << std::endl;\r
+ std::cout << "6. Enable NS Consumer RemoteService" << std::endl;\r
#endif\r
- std::cout << "6. Exit" << std::endl;\r
+ std::cout << "7. Exit" << std::endl;\r
\r
std::cout << "Input: " << std::endl;\r
std::cin >> num;\r
switch (num)\r
{\r
case 1:\r
- std::cout << "1. Start the Notification Consumer" << std::endl;\r
+ std::cout << "Start the Notification Consumer" << std::endl;\r
NSConsumerService::getInstance()->start(onDiscoverNotificationCb);\r
break;\r
case 2:\r
- std::cout << "2. Stop the Notification Consumer" << std::endl;\r
+ std::cout << "Stop the Notification Consumer" << std::endl;\r
NSConsumerService::getInstance()->stop();\r
break;\r
case 3:\r
{\r
+ std::cout << "SendSyncInfo" << std::endl;\r
+ if(!mainMessageId)\r
+ {\r
+ std::cout << "Message ID is empty" << std::endl;\r
+ break;\r
+ }\r
+ std::cout << "1. Send Read Sync" << std::endl;\r
+ std::cout << "2. Send Delete Sync" << std::endl;\r
+ int syn = 0;\r
+ while(!(std::cin >> syn)){\r
+ cout << "Bad value!";\r
+ std::cin.clear();\r
+ std::cin.ignore(numeric_limits<streamsize>::max(), '\n');\r
+ }\r
+ switch (syn)\r
+ {\r
+ case 1:\r
+ {\r
+ std::cout << "Sending Read Sync" << std::endl;\r
+ auto provider = NSConsumerService::getInstance()->getProvider(\r
+ mainProvider);\r
+ if (provider != nullptr)\r
+ {\r
+ provider->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ }\r
+ }\r
+ break;\r
+ case 2:\r
+ {\r
+ std::cout << "Sending Delete Sync" << std::endl;\r
+ auto provider = NSConsumerService::getInstance()->getProvider(\r
+ mainProvider);\r
+ if (provider != nullptr)\r
+ {\r
+ provider->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED);\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ {\r
+ cout << "Invalid Input!. sending default Read Sync";\r
+ auto provider = NSConsumerService::getInstance()->getProvider(\r
+ mainProvider);\r
+ if (provider != nullptr)\r
+ {\r
+ provider->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ }\r
+ std::cin.clear();\r
+ std::cin.ignore(numeric_limits<streamsize>::max(), '\n');\r
+ break;\r
+ }\r
+ }\r
+ break;\r
+ }\r
+ case 4:\r
+ {\r
std::cout << "GetTopicList" << std::endl;\r
OIC::Service::NSProvider *provider = NSConsumerService::getInstance()->getProvider(mainProvider);\r
if (provider != nullptr)\r
}\r
}\r
break;\r
- case 4:\r
+ case 5:\r
{\r
std::cout << "UpdateTopicList" << std::endl;\r
OIC::Service::NSProvider *provider = NSConsumerService::getInstance()->getProvider(mainProvider);\r
}\r
break;\r
#ifdef WITH_CLOUD\r
- case 5:\r
+ case 6:\r
{\r
- std::cout << "5. Enable NS Consumer RemoteService" << std::endl;\r
+ std::cout << "Enable NS Consumer RemoteService" << std::endl;\r
std::cout << "Input the Server Address :";\r
std::cin >> REMOTE_SERVER_ADDRESS;\r
NSConsumerService::getInstance()->enableRemoteService(REMOTE_SERVER_ADDRESS);\r
break;\r
}\r
#endif\r
- case 6:\r
- std::cout << "6. Exit" << std::endl;\r
+ case 7:\r
+ std::cout << "Exit" << std::endl;\r
NSConsumerService::getInstance()->stop();\r
isExit = true;\r
break;\r
default:\r
+ std::cout << "Under Construction" << std::endl;\r
std::cin.clear();\r
std::cin.ignore(numeric_limits<streamsize>::max(), '\n');\r
break;\r
using namespace std;\r
using namespace OIC::Service;\r
std::string mainConsumer;\r
-uint64_t mainMessageId;\r
+uint64_t mainMessageId = 0;\r
\r
extern char *strdup(const char *s);\r
\r
\r
void syncCallback(OIC::Service::NSSyncInfo *sync)\r
{\r
- std::cout << "synnc requested" << std::endl;\r
-\r
+ std::cout << "SyncInfo Received " << std::endl;\r
+ std::cout << "Sync ID : " << sync->getMessageId() << std::endl;\r
+ std::cout << "Provider ID : " << sync->getProviderId() << std::endl;\r
std::cout << "Sync State: " << (int) sync->getState() << std::endl;\r
}\r
\r
{\r
std::cout << "1. Start the Notification Provider(Accepter: Provider)" << std::endl;\r
std::cout << "2. Start the Notification Provider(Accepter: Consumer)" << std::endl;\r
- std::cout << "3. SendMessage " << std::endl;\r
- std::cout << "4. SendSyncInfo" << std::endl;\r
-\r
- std::cout << "5. RegisterTopic" << std::endl;\r
- std::cout << "6. UnregisterTopic" << std::endl;\r
- std::cout << "7. SetTopic" << std::endl;\r
- std::cout << "8. UnsetTopic" << std::endl;\r
- std::cout << "9. GetConsumerTopicList" << std::endl;\r
- std::cout << "10. GetRegisteredTopicList" << std::endl;\r
+ std::cout << "3. Allow Subscription" << std::endl;\r
+ std::cout << "4. Deny Subscription" << std::endl;\r
+ std::cout << "5. SendMessage " << std::endl;\r
+ std::cout << "6. SendSyncInfo" << std::endl;\r
+\r
+ std::cout << "7. RegisterTopic" << std::endl;\r
+ std::cout << "8. UnregisterTopic" << std::endl;\r
+ std::cout << "9. SetTopic" << std::endl;\r
+ std::cout << "10. UnsetTopic" << std::endl;\r
+ std::cout << "11. GetConsumerTopicList" << std::endl;\r
+ std::cout << "12. GetRegisteredTopicList" << std::endl;\r
#ifdef WITH_CLOUD\r
- std::cout << "11. Enable NS Provider RemoteService" << std::endl;\r
- std::cout << "12. Disable NS Provider RemoteService" << std::endl;\r
+ std::cout << "13. Enable NS Provider RemoteService" << std::endl;\r
+ std::cout << "14. Disable NS Provider RemoteService" << std::endl;\r
#endif\r
- std::cout << "13. Stop the Notification Provider" << std::endl;\r
- std::cout << "14. Exit()" << std::endl;\r
+ std::cout << "15. Stop the Notification Provider" << std::endl;\r
+ std::cout << "16. Exit()" << std::endl;\r
\r
std::cout << "input : ";\r
\r
}\r
case 3:\r
{\r
+ std::cout << "Allow Subscription" << std::endl;\r
+ OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(\r
+ mainConsumer);\r
+ if (consumer != nullptr)\r
+ {\r
+ std::cout << "ALLOW" << std::endl;\r
+ consumer->acceptSubscription(true);\r
+ }\r
+ break;\r
+ }\r
+ case 4:\r
+ {\r
+ std::cout << "Deny Subscription" << std::endl;\r
+ OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(\r
+ mainConsumer);\r
+ if (consumer != nullptr)\r
+ {\r
+ std::cout << "DENY" << std::endl;\r
+ consumer->acceptSubscription(false);\r
+ }\r
+ break;\r
+ }\r
+ case 5:\r
+ {\r
+ std::cout << "------------------------------------" << std::endl;\r
std::cout << "SendMessage" << std::endl;\r
+ std::cout << "------------------------------------" << std::endl;\r
\r
std::string dummy;\r
std::string title;\r
msg->setContentText(body.c_str());\r
msg->setSourceName("OCF");\r
msg->setTopic(topic);\r
+ msg->setTTL(40);\r
+ msg->setTime("12:30");\r
+ OIC::Service::NSMediaContents *mediaContents = \r
+ new OIC::Service::NSMediaContents("iconImage");\r
+ msg->setMediaContents(mediaContents);\r
+\r
+ OC::OCRepresentation rep;\r
+ rep.setValue("Key1","Value1");\r
+ rep.setValue("Key2","Value2");\r
+ msg->setExtraInfo(rep);\r
+\r
mainMessageId = msg->getMessageId();\r
std::cout << "ProviderID for Message : " << msg->getProviderId() << std::endl;\r
+ std::cout << "MessageID for Message : " << msg->getMessageId() << std::endl;\r
\r
NSProviderService::getInstance()->sendMessage(msg);\r
-\r
+ delete mediaContents;\r
break;\r
}\r
- case 4:\r
+ case 6:\r
{\r
+ std::cout << "------------------------------------" << std::endl;\r
std::cout << "SendSyncInfo" << std::endl;\r
- NSProviderService::getInstance()->sendSyncInfo(mainMessageId,\r
- OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ std::cout << "------------------------------------" << std::endl;\r
+ if(!mainMessageId)\r
+ {\r
+ std::cout << "Message ID is empty" << std::endl;\r
+ break;\r
+ }\r
+ std::cout << "1. Send Read Sync" << std::endl;\r
+ std::cout << "2. Send Delete Sync" << std::endl;\r
+ int syn = 0;\r
+ while(!(std::cin >> syn)){\r
+ cout << "Bad value!";\r
+ std::cin.clear();\r
+ std::cin.ignore(numeric_limits<streamsize>::max(), '\n');\r
+ }\r
+ switch (syn)\r
+ {\r
+ case 1:\r
+ {\r
+ std::cout << "Sending Read Sync" << std::endl;\r
+ NSProviderService::getInstance()->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ }\r
+ break;\r
+ case 2:\r
+ {\r
+ std::cout << "Sending Delete Sync" << std::endl;\r
+ NSProviderService::getInstance()->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED);\r
+ }\r
+ break;\r
+ default:\r
+ {\r
+ cout << "Invalid Input!. sending default Read Sync";\r
+ NSProviderService::getInstance()->sendSyncInfo(mainMessageId,\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ std::cin.clear();\r
+ std::cin.ignore(numeric_limits<streamsize>::max(), '\n');\r
+ break;\r
+ }\r
+ }\r
break;\r
}\r
\r
- case 5:\r
+ case 7:\r
std::cout << "RegisterTopic" << std::endl;\r
NSProviderService::getInstance()->registerTopic("OCF_TOPIC1");\r
NSProviderService::getInstance()->registerTopic("OCF_TOPIC2");\r
NSProviderService::getInstance()->registerTopic("OCF_TOPIC4");\r
break;\r
\r
- case 6:\r
+ case 8:\r
std::cout << "UnregisterTopic" << std::endl;\r
NSProviderService::getInstance()->unregisterTopic("OCF_TOPIC2");\r
break;\r
\r
- case 7:\r
+ case 9:\r
{\r
std::cout << "SetTopic" << std::endl;\r
OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
}\r
break;\r
}\r
- case 8:\r
+ case 10:\r
{\r
std::cout << "UnsetTopic" << std::endl;\r
OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
}\r
break;\r
\r
- case 9:\r
+ case 11:\r
{\r
std::cout << "GetConsumerTopicList" << std::endl;\r
OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
}\r
break;\r
\r
- case 10:\r
+ case 12:\r
{\r
std::cout << "GetRegisteredTopicList" << std::endl;\r
auto nsTopics = NSProviderService::getInstance()->getRegisteredTopicList();\r
}\r
break;\r
#ifdef WITH_CLOUD\r
- case 11:\r
+ case 13:\r
{\r
- std::cout << "11. Enable NS Provider RemoteService" << std::endl;\r
+ std::cout << "Enable NS Provider RemoteService" << std::endl;\r
std::cout << "Input the Server Address :";\r
std::cin >> REMOTE_SERVER_ADDRESS;\r
NSProviderService::getInstance()->enableRemoteService(REMOTE_SERVER_ADDRESS);\r
break;\r
}\r
- case 12:\r
+ case 14:\r
{\r
- std::cout << "12. Disable NS Provider RemoteService" << std::endl;\r
+ std::cout << "Disable NS Provider RemoteService" << std::endl;\r
std::cout << "Input the Server Address :";\r
NSProviderService::getInstance()->disableRemoteService(REMOTE_SERVER_ADDRESS);\r
break;\r
}\r
#endif\r
- case 13:\r
+ case 15:\r
+ std::cout << "Stop the Notification Provider" << std::endl;\r
NSProviderService::getInstance()->stop();\r
break;\r
- case 14:\r
+ case 16:\r
+ std::cout << "Exit()" << std::endl;\r
NSProviderService::getInstance()->stop();\r
isExit = true;\r
break;\r