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', '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
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
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
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
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
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
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
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
\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
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
* 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
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
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
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
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);
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));
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 };