Modified the Provider Configuration.
authorabitha.s <abitha.s@samsung.com>
Mon, 8 Aug 2016 09:36:37 +0000 (15:06 +0530)
committerMadan Lanka <lanka.madan@samsung.com>
Mon, 8 Aug 2016 12:58:43 +0000 (12:58 +0000)
1. modified NSStartProvider API arguments in proivder side.
2. Uncomments out about jni, unittest and Cpp wrapper in SConscript.
3. Added CreateMessage API in Provider Side

Change-Id: I8be29121901d21e13f137828329da59c4c8ef1b8
Signed-off-by: abitha.s <abitha.s@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10133
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/notification/SConscript [changed mode: 0644->0755]
service/notification/android/notification-service/src/main/jni/notificationProvider.c [changed mode: 0644->0755]
service/notification/cpp-wrapper/common/NSMessage.cpp
service/notification/cpp-wrapper/common/NSMessage.h
service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp
service/notification/cpp-wrapper/provider/inc/NSProviderService.h
service/notification/cpp-wrapper/provider/src/NSProviderService.cpp
service/notification/unittest/NSProviderTest.cpp [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 957d4e3..8e1350f
@@ -111,15 +111,15 @@ notification_env.UserInstallTargetHeader('include/NSConsumerInterface.h',\
        'service/notification', 'NSConsumerInterface.h')
 
 # Go to build Unit test
-#if target_os == 'linux':
#SConscript('unittest/SConscript')
+if target_os == 'linux':
   SConscript('unittest/SConscript')
 
 # Go to build sample apps
 SConscript('examples/SConscript')
 
 # Go to build jni
-#if target_os == 'android':
-#    SConscript('android/SConscript')
+if target_os == 'android':
+    SConscript('android/SConscript')
 
  # Go to build c++ wrapper
-#SConscript('cpp-wrapper/SConscript')
\ No newline at end of file
+SConscript('cpp-wrapper/SConscript')
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index c906357..b60367e
@@ -52,10 +52,11 @@ JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NS
     g_obj_subscriptionListener = (jobject) (*env)->NewGlobalRef(env, jSubscriptionListener);\r
     g_obj_syncListener = (jobject) (*env)->NewGlobalRef(env, jSyncListener);\r
 \r
-    // check access policy\r
-    bool policy = true;\r
-\r
-    if (NSStartProvider(policy, NSSubscribeRequestCb, NSSyncCb) != NS_OK)\r
+    NSProviderConfig config;\r
+    config.subRequestCallback = NSSubscribeRequestCb;\r
+    config.syncInfoCallback = NSSyncCb;\r
+    config.policy = true;\r
+    if (NSStartProvider(config) != NS_OK)\r
     {\r
         LOGE("Fail to start NSProvider service");\r
         return (jint) NS_ERROR;\r
index 899b22c..0cf3e54 100755 (executable)
@@ -104,16 +104,6 @@ namespace OIC
             return m_mediaContents;\r
         }\r
 \r
-        void NSMessage::setMessageId(const uint64_t &messageId)\r
-        {\r
-            m_messageId = messageId;\r
-        }\r
-\r
-        void NSMessage::setProviderId(const std::string &providerId)\r
-        {\r
-            m_providerId = providerId;\r
-        }\r
-\r
         void NSMessage::setType(const NSMessageType &type)\r
         {\r
             m_type = type;\r
index 6cd7755..3f3d09c 100755 (executable)
@@ -75,13 +75,6 @@ namespace OIC
                 uint64_t getMessageId() const;\r
 \r
                 /**\r
-                     * This method is for setting Message Id from the Notification service Message.\r
-                     *\r
-                     * @param messageId as uint64_t.\r
-                     */\r
-                void setMessageId(const uint64_t &messageId);\r
-\r
-                /**\r
                      * This method is for getting Provider Id from the Notification service Message.\r
                      *\r
                      * @return Id as string.\r
@@ -89,13 +82,6 @@ namespace OIC
                 std::string getProviderId() const;\r
 \r
                 /**\r
-                     * This method is for setting Provider Id from the Notification service Message.\r
-                     *\r
-                     * @param providerId as string.\r
-                     */\r
-                void setProviderId(const std::string &providerId);\r
-\r
-                /**\r
                      * This method is for getting type from the Notification service Message.\r
                      *\r
                      * @return type as NSMessageType.\r
index 3e93025..339d1f0 100755 (executable)
@@ -111,7 +111,9 @@ int main()
                     NSProviderService::ProviderConfig cfg;\r
                     cfg.m_subscribeRequestCb = subscribeRequestCallback;\r
                     cfg.m_syncInfoCb = syncCallback;\r
-                    NSProviderService::getInstance()->Start(NSProviderService::NSAccessPolicy::NS_ACCESS_ALLOW, cfg);\r
+                    cfg.policy = (bool) NSProviderService::NSAccessPolicy::NS_ACCESS_ALLOW;\r
+\r
+                    NSProviderService::getInstance()->Start(cfg);\r
                     break;\r
                 }\r
             case 2:\r
@@ -120,7 +122,9 @@ int main()
                     NSProviderService::ProviderConfig cfg;\r
                     cfg.m_subscribeRequestCb = subscribeRequestCallback;\r
                     cfg.m_syncInfoCb = syncCallback;\r
-                    NSProviderService::getInstance()->Start(NSProviderService::NSAccessPolicy::NS_ACCESS_DENY, cfg);\r
+                    cfg.policy = (bool) NSProviderService::NSAccessPolicy::NS_ACCESS_DENY;\r
+\r
+                    NSProviderService::getInstance()->Start(cfg);\r
                     break;\r
                 }\r
             case 3:\r
@@ -141,12 +145,11 @@ int main()
                     std::cout << "app - mTitle : " << title << std::endl;\r
                     std::cout << "app - mContentText : " << body << std::endl;\r
 \r
-                    OIC::Service::NSMessage *msg = new OIC::Service::NSMessage();\r
+                    OIC::Service::NSMessage *msg = NSProviderService::getInstance()->CreateMessage();\r
+\r
                     msg->setType(OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO);\r
                     msg->setTitle(title.c_str());\r
                     msg->setContentText(body.c_str());\r
-                    msg->setTime("");\r
-                    msg->setTTL(0);\r
                     msg->setSourceName("OCF");\r
 \r
                     NSProviderService::getInstance()->SendMessage(msg);\r
index b71ae29..9b64ec6 100755 (executable)
@@ -61,7 +61,7 @@ namespace OIC
 \r
                 /**\r
                       * @struct   ProviderConfig\r
-                      * @brief Provider sets this callback function configuration for registering callbacks\r
+                      * @brief Provider sets this following configuration for registering callbacks and configs\r
                       *\r
                       */\r
                 typedef struct\r
@@ -70,6 +70,14 @@ namespace OIC
                     ConsumerSubscribedCallback m_subscribeRequestCb;\r
                     /** m_syncInfoCb - MessageSynchronizedCallback callback listener.*/\r
                     MessageSynchronizedCallback m_syncInfoCb;\r
+\r
+                    /* Set the policy for notification servcie refering to following\r
+                                 * if policy is true, provider decides to allow or deny for all the subscribing consumers.\r
+                                 * Otherwise(policy is false) consumer decides to request subscription to discovered providers.\r
+                                 */\r
+                    bool policy;\r
+                    /* User Information */\r
+                    std::string userInfo;\r
                 } ProviderConfig;\r
 \r
                 /**\r
@@ -95,7 +103,7 @@ namespace OIC
                       * and onMessageSynchronized function listeners\r
                       * @return :: result code of Provider Service\r
                       */\r
-                Result Start(NSAccessPolicy policy, ProviderConfig config);\r
+                Result Start(ProviderConfig config);\r
 \r
                 /**\r
                       * Terminate notification service for provider\r
@@ -133,6 +141,12 @@ namespace OIC
                 void SendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
 \r
                 /**\r
+                     * Initialize NSMessage class, service sets message id and provider(device) id\r
+                     * @return ::NSMessage *\r
+                     */\r
+                NSMessage *CreateMessage();\r
+\r
+                /**\r
                       *  get Provider config values\r
                       * @return ProviderConfig callbaks set\r
                       */\r
index fa9a902..e4335a7 100755 (executable)
@@ -78,14 +78,18 @@ namespace OIC
             return &s_instance;\r
         }\r
 \r
-        Result NSProviderService::Start(NSProviderService::NSAccessPolicy policy,\r
-                                        NSProviderService::ProviderConfig config)\r
+        Result NSProviderService::Start(NSProviderService::ProviderConfig config)\r
         {\r
             NS_LOG(DEBUG, "Start - IN");\r
 \r
             m_config = config;\r
-            Result result = (Result) NSStartProvider((::NSAccessPolicy)policy,\r
-                            onConsumerSubscribedCallback, onMessageSynchronizedCallback);\r
+            NSProviderConfig nsConfig;\r
+            nsConfig.subRequestCallback = onConsumerSubscribedCallback;\r
+            nsConfig.syncInfoCallback = onMessageSynchronizedCallback;\r
+            nsConfig.policy = config.policy;\r
+            nsConfig.userInfo = OICStrdup(config.userInfo.c_str());\r
+\r
+            Result result = (Result) NSStartProvider(nsConfig);\r
             NS_LOG(DEBUG, "Start - OUT");\r
             return result;\r
         }\r
@@ -145,6 +149,20 @@ namespace OIC
             return;\r
         }\r
 \r
+        NSMessage *NSProviderService::CreateMessage()\r
+        {\r
+            NS_LOG(DEBUG, "CreateMessage - IN");\r
+\r
+            ::NSMessage *message = NSCreateMessage();\r
+            NSMessage *nsMessage = new NSMessage(message);\r
+\r
+            NS_LOG_V(DEBUG, "Message ID : %lld", nsMessage->getMessageId());\r
+            NS_LOG_V(DEBUG, "Provider ID : %s", nsMessage->getProviderId().c_str());\r
+            NS_LOG(DEBUG, "CreateMessage - OUT");\r
+\r
+            return nsMessage;\r
+        }\r
+\r
         NSProviderService::ProviderConfig NSProviderService::getProviderConfig()\r
         {\r
             return m_config;\r
old mode 100644 (file)
new mode 100755 (executable)
index 1b1f345..ce86a03
@@ -132,9 +132,12 @@ protected:
 
 TEST_F(NotificationProviderTest, StartProviderPositiveWithNSPolicyTrue)
 {
-    NSResult ret = NSStartProvider(true,
-            NSRequestedSubscribeCallbackEmpty,
-            NSSyncCallbackEmpty);
+    NSProviderConfig config;
+    config.subRequestCallback = NSRequestedSubscribeCallbackEmpty;
+    config.syncInfoCallback = NSSyncCallbackEmpty;
+    config.policy = true;
+
+    NSResult ret = NSStartProvider(config);
 
     std::unique_lock< std::mutex > lock{ mutexForCondition };
     responseCon.wait_for(lock, g_waitForResponse);
@@ -154,9 +157,12 @@ TEST_F(NotificationProviderTest, StopProviderPositive)
 
 TEST_F(NotificationProviderTest, StartProviderPositiveWithNSPolicyFalse)
 {
-    NSResult ret = NSStartProvider(false,
-            NSRequestedSubscribeCallbackEmpty,
-            NSSyncCallbackEmpty);
+    NSProviderConfig config;
+    config.subRequestCallback = NSRequestedSubscribeCallbackEmpty;
+    config.syncInfoCallback = NSSyncCallbackEmpty;
+    config.policy = false;
+
+    NSResult ret = NSStartProvider(config);
 
     std::unique_lock< std::mutex > lock{ mutexForCondition };
     responseCon.wait_for(lock, std::chrono::milliseconds(3000));
@@ -178,8 +184,12 @@ TEST_F(NotificationProviderTest, ExpectCallbackWhenReceiveSubscribeRequestWithAc
                 responseCon.notify_all();
             });
 
-    NSStartProvider(true,
-            NSRequestedSubscribeCallbackEmpty, NSSyncCallbackEmpty);
+    NSProviderConfig config;
+    config.subRequestCallback = NSRequestedSubscribeCallbackEmpty;
+    config.syncInfoCallback = NSSyncCallbackEmpty;
+    config.policy = true;
+
+    NSStartProvider(config);
 
     {
         std::unique_lock< std::mutex > lock{ mutexForCondition };