1. Changes in NSProvider APIs for get and set TopicsList to shared pointers.
2. Changes in NSConsumer API for get ConsumerTopicList to shared pointer
3. Changes in NSProviderService API to get RegisteredTopicsList to shared pointer.
4. changes to return as object of list of Topics in TopicsList
Patch 2 : rebased
patch 3 : added shared_ptr changes to setTopicList as per review
patch 4 : added modifiability feature for preventing TopicsList modification
patch 5 : added unsetModifiability to only preven modification
patch 6 : rebased
Change-Id: I3aacef4f3a5809623add69a16fd2ad9f93d11dd9
Signed-off-by: abitha.s <abitha.s@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/17113
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
return topicState;\r
}\r
\r
-jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)\r
+jobject getJavaTopicsList(JNIEnv *env, std::shared_ptr<OIC::Service::NSTopicsList> topicList)\r
{\r
NS_LOGD ("ConsumerService_getJavaTopicsList - IN");\r
jclass cls_topicList = (jclass) (env->NewLocalRef(g_cls_TopicsList));\r
}\r
for (auto it : topicList->getTopicsList())\r
{\r
- jobject jState = getJavaTopicState(env, it->getState());\r
- std::string topicName = it->getTopicName();\r
+ jobject jState = getJavaTopicState(env, it.getState());\r
+ std::string topicName = it.getTopicName();\r
jstring jTopicName = env->NewStringUTF(topicName.c_str());\r
env->CallVoidMethod(obj_topicList, mid_addTopic, jTopicName, jState);\r
}\r
\r
}\r
\r
-OIC::Service::NSTopicsList *getNativeTopicsList(JNIEnv *env, jobject jTopicList)\r
+std::shared_ptr<OIC::Service::NSTopicsList> getNativeTopicsList(JNIEnv *env, jobject jTopicList)\r
{\r
NS_LOGD ("ConsumerService_getNativeTopicsList - IN");\r
\r
NS_LOGE ("Error: MethodId for Vector get not found");\r
return nullptr;\r
}\r
- OIC::Service::NSTopicsList *nsTopicList = new OIC::Service::NSTopicsList();\r
+ std::shared_ptr<OIC::Service::NSTopicsList> nsTopicList = std::make_shared<OIC::Service::NSTopicsList>();\r
for (int index = 0; index < size; index++)\r
{\r
jobject topicObj = env->CallObjectMethod(jobj, getMethod, index);\r
if (topicObj == NULL)\r
{\r
NS_LOGE ("Error: object of field Topic is null");\r
- delete nsTopicList;\r
return nullptr;\r
}\r
const char *name = getNativeTopicName(env, topicObj);\r
if (name == nullptr)\r
{\r
NS_LOGE ("Error: Couldn't find topic Name");\r
- delete nsTopicList;\r
return nullptr;\r
}\r
std::string topicName(name);\r
OIC::Service::NSTopic::NSTopicState state = OIC::Service::NSTopic::NSTopicState::UNSUBSCRIBED;\r
if (!getNativeTopicState(env, topicObj, state))\r
{\r
- delete nsTopicList;\r
return nullptr;\r
}\r
nsTopicList->addTopic(topicName, state);\r
return NULL;\r
}\r
jlong jProvider = env->GetLongField(jObj, nativeHandle);\r
- OIC::Service::NSTopicsList *topicList = nullptr;\r
+ std::shared_ptr<OIC::Service::NSTopicsList> topicList = nullptr;\r
if (jProvider)\r
{\r
NS_LOGD ("calling subscribe on mNativeHandle");\r
ThrowNSException(JNI_INVALID_VALUE, "TopicList cannot be null");\r
return;\r
}\r
- OIC::Service::NSTopicsList *nsTopicsList = getNativeTopicsList(env, jTopicsList);\r
+ std::shared_ptr<OIC::Service::NSTopicsList> nsTopicsList = getNativeTopicsList(env, jTopicsList);\r
if (nsTopicsList == nullptr)\r
{\r
ThrowNSException(JNI_INVALID_VALUE, "NSTopicList cannot be created ");\r
return topicState;
}
-jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
+jobject getJavaTopicsList(JNIEnv *env, std::shared_ptr<OIC::Service::NSTopicsList> topicList)
{
NS_LOGD ("JNIProviderService: getJavaTopicsList - IN");
jclass cls_topicList = (jclass) (env->NewLocalRef(g_cls_TopicsList));
}
for (auto it : topicList->getTopicsList())
{
- jobject jState = getJavaTopicState(env, it->getState());
- std::string topicName = it->getTopicName();
+ jobject jState = getJavaTopicState(env, it.getState());
+ std::string topicName = it.getTopicName();
jstring jTopicName = env->NewStringUTF(topicName.c_str());
env->CallVoidMethod(obj_topicList, mid_addTopic, jTopicName, jState);
}
{
NS_LOGD ("JNIProviderService: nativeGetRegisteredTopicList - IN");
- OIC::Service::NSTopicsList *topicList =
+ std::shared_ptr<OIC::Service::NSTopicsList> topicList =
OIC::Service::NSProviderService::getInstance()->getRegisteredTopicList();
if (topicList == nullptr)
{
}
jobject obj_topicList = getJavaTopicsList(env, topicList);
- delete topicList;
NS_LOGD ("JNIProviderService: nativeGetRegisteredTopicList - OUT");
return obj_topicList;
return NULL;
}
env->ReleaseStringUTFChars(jConsumerId, id);
- OIC::Service::NSTopicsList *topicList = nsConsumer->getConsumerTopicList();
+ std::shared_ptr<OIC::Service::NSTopicsList> topicList = nsConsumer->getConsumerTopicList();
if (topicList == nullptr)
{
ThrowNSException(JNI_NO_NATIVE_POINTER, "Topic List doesn't exist");
return NULL;
}
jobject obj_topicList = getJavaTopicsList(env, topicList);
- delete topicList;
NS_LOGD ("JNIProviderService: nativeGetConsumerTopicList - OUT");
return obj_topicList;
{
namespace Service
{
- NSTopicsList::NSTopicsList(::NSTopicLL *topics)
+ NSTopicsList::NSTopicsList(::NSTopicLL *topics, bool modify)
{
::NSTopicLL *topicsNode = nullptr;
topicsNode = topics;
+ m_modifiable = modify;
while (topicsNode != nullptr)
{
- addTopic(topicsNode->topicName, (NSTopic::NSTopicState)topicsNode->state);
+ m_topicsList.push_back(new NSTopic(
+ topicsNode->topicName, (NSTopic::NSTopicState)topicsNode->state));
topicsNode = topicsNode->next;
}
{
for (auto it : topicsList.getTopicsList())
{
- addTopic(it->getTopicName(), it->getState());
+ m_topicsList.push_back(new NSTopic(it.getTopicName(), it.getState()));
}
+ m_modifiable = false;
}
NSTopicsList &NSTopicsList::operator=(const NSTopicsList &topicsList)
{
for (auto it : topicsList.getTopicsList())
{
- this->addTopic(it->getTopicName(), it->getState());
+ this->m_topicsList.push_back(new NSTopic(it.getTopicName(), it.getState()));
}
return *this;
+ m_modifiable = false;
}
NSTopicsList::~NSTopicsList()
{
- for (auto it : getTopicsList())
+ for (auto it : m_topicsList)
{
delete it;
}
- getTopicsList().clear();
+ m_topicsList.clear();
}
void NSTopicsList::addTopic(const std::string &topicName, NSTopic::NSTopicState state)
{
- m_topicsList.push_back(new NSTopic(topicName, state));
+ if(m_modifiable)
+ {
+ m_topicsList.push_back(new NSTopic(topicName, state));
+ }
+ else
+ {
+ //TODO: add exception code for Invalid operation
+ }
}
void NSTopicsList::removeTopic(const std::string &topicName)
{
- for (auto it : getTopicsList())
+ if(m_modifiable)
{
- if (it->getTopicName().compare(topicName) == 0)
+ for (auto it : m_topicsList)
{
- m_topicsList.remove(it);
+ if (it->getTopicName().compare(topicName) == 0)
+ {
+ m_topicsList.remove(it);
+ }
}
}
+ else
+ {
+ //TODO: add exception code for Invalid operation
+ }
+ }
+
+ std::list<NSTopic> NSTopicsList::getTopicsList() const
+ {
+ std::list<NSTopic> topicList;
+ for (auto it : m_topicsList)
+ {
+ NSTopic topic(it->getTopicName(), it->getState());
+ topicList.push_back(topic);
+ }
+ return topicList;
}
- std::list<NSTopic *> NSTopicsList::getTopicsList() const
+ void NSTopicsList::unsetModifiability()
{
- return m_topicsList;
+ m_modifiable = false;
}
}
}
/**
* Constructor of NSTopicsList.
*/
- NSTopicsList() = default;
+ NSTopicsList() : m_modifiable(true) { }
/**
* Constructor of NSTopicsList.
*
* @param topics - pointer to NSTopicLL struct to initialize.
*/
- NSTopicsList(::NSTopicLL *topics);
+ NSTopicsList(::NSTopicLL *topics, bool modify);
/**
* Copy Constructor of NSTopicsList.
*
* @return topic as NSTopics Linked list.
*/
- std::list<NSTopic *> getTopicsList() const;
+ std::list<NSTopic> getTopicsList() const;
+
+ /**
+ * This method is for preventing for add/remove Topic from Topicslist.
+ * Below method restricts the application from illegally modifying Topics when
+ * Provider is in Invalid state. By calling the API, the service prevents and protects
+ * the integrity of TopicsList updation when the associated object is Invalid.
+ *
+ */
+ void unsetModifiability();
private:
std::list<NSTopic *> m_topicsList;
+ bool m_modifiable;
};
}
/**
* Constructor of NSProvider.
*/
- NSProvider(): m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),
+ NSProvider(): m_topicList(std::make_shared<NSTopicsList>()), m_state(NSProviderState::DENY),
m_subscribedState(NSProviderSubscribedState::DENY),
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL)
{
* @param providerId - providerId of the Notification.
*/
NSProvider(const std::string &providerId) : m_providerId(providerId),
- m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),
+ m_topicList(std::make_shared<NSTopicsList>()), m_state(NSProviderState::DENY),
m_subscribedState(NSProviderSubscribedState::DENY),
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL)
{
* @param providerId - providerId of the Notification.
* @param topicList - NSTopicsList of interested Topics.
*/
- NSProvider(const std::string &providerId, NSTopicsList *topicList) : m_providerId(
+ NSProvider(const std::string &providerId, std::shared_ptr<NSTopicsList> topicList) : m_providerId(
providerId), m_topicList(topicList), m_state(NSProviderState::DENY),
m_subscribedState(NSProviderSubscribedState::DENY),
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL)
/**
* Destructor of NSProvider.
*/
- ~NSProvider();
+ ~NSProvider() = default;
/**
* This method is for getting ProviderId from the Notification service provider.
*
* @return NSTopicsList as pointer.
*/
- NSTopicsList *getTopicList() const;
+ std::shared_ptr<NSTopicsList> getTopicList() const;
/**
* Update Topic list that is wanted to be subscribed from provider
* @param topicList - NSTopicsList of interested Topics.
* @return NSResult
*/
- NSResult updateTopicList(NSTopicsList *topicList);
+ NSResult updateTopicList(std::shared_ptr<NSTopicsList> topicList);
/**
* This method is for getting ProviderState from the Notification service provider.
*
* @param topicsList as NSTopicsList pointer.
*/
- void setTopicList(NSTopicsList *topicsList);
+ void setTopicList(std::shared_ptr<NSTopicsList> topicsList);
/**
* This method is for setting ProviderState for the Notification service provider.
private:
std::string m_providerId;
- NSTopicsList *m_topicList;
+ std::shared_ptr<NSTopicsList> m_topicList;
NSProviderState m_state;
NSProviderSubscribedState m_subscribedState;
auto discoveredCallback = NSConsumerService::getInstance()->getProviderDiscoveredCb();
nsProvider->setProviderState((NSProviderState)state);
auto topicLL = NSConsumerGetTopicList(provider->providerId);
- nsProvider->setTopicList(new NSTopicsList(topicLL));
+ nsProvider->setTopicList(std::make_shared<NSTopicsList>(topicLL, false));
NSConsumerService::getInstance()->getAcceptedProviders()->addProvider(nsProvider);
if (state == NS_DISCOVERED)
{
else if (state == NS_TOPIC)
{
auto topicLL = NSConsumerGetTopicList(provider->providerId);
- oldProvider->setTopicList(new NSTopicsList(topicLL));
+ oldProvider->setTopicList(std::make_shared<NSTopicsList>(topicLL, false));
if (changeCallback != NULL)
{
NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC");
else if (state == NS_STOPPED)
{
oldProvider->setProviderSubscribedState(NSProviderSubscribedState::DENY);
+ oldProvider->getTopicList()->unsetModifiability();
NSConsumerService::getInstance()->getAcceptedProviders()->removeProvider(
oldProvider->getProviderId());
NS_LOG(DEBUG, "initiating the State callback : NS_STOPPED");
m_state = NSProviderState::DENY;\r
m_subscribedState = NSProviderSubscribedState::DENY;\r
\r
- m_topicList = new NSTopicsList();\r
+ m_topicList = std::make_shared<NSTopicsList>();\r
\r
if (provider != nullptr)\r
{\r
NSProvider::NSProvider(const NSProvider &provider)\r
{\r
m_providerId = provider.getProviderId();\r
- m_topicList = new NSTopicsList();\r
+ m_topicList = std::make_shared<NSTopicsList>();\r
auto topicsList = provider.getTopicList();\r
if (topicsList != nullptr)\r
{\r
for (auto it : topicsList->getTopicsList())\r
{\r
- getTopicList()->addTopic(it->getTopicName(), it->getState());\r
+ getTopicList()->addTopic(it.getTopicName(), it.getState());\r
}\r
}\r
setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
NSProvider &NSProvider::operator=(const NSProvider &provider)\r
{\r
this->m_providerId = provider.getProviderId();\r
- this->m_topicList = new NSTopicsList();\r
+ this->m_topicList = std::make_shared<NSTopicsList>();\r
auto topicsList = provider.getTopicList();\r
if (topicsList != nullptr)\r
{\r
for (auto it : topicsList->getTopicsList())\r
{\r
- this->getTopicList()->addTopic(it->getTopicName(), it->getState());\r
+ this->getTopicList()->addTopic(it.getTopicName(), it.getState());\r
}\r
}\r
this->setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
return *this;\r
}\r
\r
- NSProvider::~NSProvider()\r
- {\r
- if (m_topicList != nullptr)\r
- {\r
- delete m_topicList;\r
- }\r
- }\r
-\r
std::string NSProvider::getProviderId() const\r
{\r
return m_providerId;\r
}\r
\r
- NSTopicsList *NSProvider::getTopicList() const\r
+ std::shared_ptr<NSTopicsList> NSProvider::getTopicList() const\r
{\r
NS_LOG(DEBUG, "getTopicList - IN");\r
if (!isValid())\r
{\r
return nullptr;\r
}\r
- NSTopicsList *topicList = new NSTopicsList();\r
+ std::shared_ptr<NSTopicsList> topicList = std::make_shared<NSTopicsList>();\r
for (auto it : m_topicList->getTopicsList())\r
{\r
- topicList->addTopic(it->getTopicName(), it->getState());\r
+ topicList->addTopic(it.getTopicName(), it.getState());\r
}\r
+ topicList->unsetModifiability();\r
return topicList;\r
}\r
\r
- NSResult NSProvider::updateTopicList(NSTopicsList *topicList)\r
+ NSResult NSProvider::updateTopicList(std::shared_ptr<NSTopicsList> topicList)\r
{\r
NS_LOG(DEBUG, "updateTopicList - IN");\r
if (!isValid())\r
return NSResult::ERROR;\r
}\r
topic->topicName = NULL;\r
- topic->topicName = OICStrdup(it->getTopicName().c_str());\r
- topic->state = (::NSTopicState)it->getState();\r
+ topic->topicName = OICStrdup(it.getTopicName().c_str());\r
+ topic->state = (::NSTopicState)it.getState();\r
topic->next = NULL;\r
if (topicLL == NULL)\r
{\r
return m_syncInfoCb;\r
}\r
\r
- void NSProvider::setTopicList(NSTopicsList *topicsList)\r
+ void NSProvider::setTopicList(std::shared_ptr<NSTopicsList> topicsList)\r
{\r
- if (m_topicList != nullptr)\r
- {\r
- delete m_topicList;\r
- }\r
m_topicList = topicsList;\r
}\r
\r
{
for (auto it : topicList->getTopicsList())
{
- std::cout << "Topic Name: " << it->getTopicName() << std::endl;
- std::cout << "Topic state: " << (int) it->getState() << std::endl;
+ std::cout << "Topic Name: " << it.getTopicName() << std::endl;
+ std::cout << "Topic state: " << (int) it.getState() << std::endl;
}
}
}
{
for (auto it : topicList->getTopicsList())
{
- std::cout << "Topic Name: " << it->getTopicName() << std::endl;
- std::cout << "Topic state: " << (int) it->getState() << std::endl;
+ std::cout << "Topic Name: " << it.getTopicName() << std::endl;
+ std::cout << "Topic state: " << (int) it.getState() << std::endl;
}
}
}
NSConsumerService::getInstance()->getProvider(mainProvider);
if (provider != nullptr)
{
- NSTopicsList *topicList = new NSTopicsList();
+ std::shared_ptr<NSTopicsList> topicList = std::make_shared<NSTopicsList>();
topicList->addTopic("OCF_TOPIC1", NSTopic::NSTopicState::SUBSCRIBED);
topicList->addTopic("OCF_TOPIC2", NSTopic::NSTopicState::SUBSCRIBED);
topicList->addTopic("OCF_TOPIC3", NSTopic::NSTopicState::UNSUBSCRIBED);
provider->updateTopicList(topicList);
- delete topicList;
}
break;
}
for (auto it : nsTopics->getTopicsList())
{
- std::cout << it->getTopicName() << std::endl;
- std::cout << (int) it->getState() << std::endl;
+ std::cout << it.getTopicName() << std::endl;
+ std::cout << (int) it.getState() << std::endl;
}
- delete nsTopics;
}
std::cout << "GetConsumerTopicList completed" << std::endl;
}
for (auto it : nsTopics->getTopicsList())
{
- std::cout << it->getTopicName() << std::endl;
- std::cout << (int) it->getState() << std::endl;
+ std::cout << it.getTopicName() << std::endl;
+ std::cout << (int) it.getState() << std::endl;
}
- delete nsTopics;
break;
}
#ifdef WITH_CLOUD
\r
\r
#include <string>\r
+#include <memory>\r
#include "NSCommon.h"\r
#include "NSUtils.h"\r
#include "NSTopicsList.h"\r
* Request topic list with selection state for the consumer\r
* @return :: Topic list\r
*/\r
- NSTopicsList *getConsumerTopicList();\r
+ std::shared_ptr<NSTopicsList> getConsumerTopicList();\r
\r
private:\r
::NSConsumer *getNSConsumer();\r
* Request topics list already registered by provider user\r
* @return :: Topic list\r
*/\r
- NSTopicsList *getRegisteredTopicList();\r
+ std::shared_ptr<NSTopicsList> getRegisteredTopicList();\r
\r
/**\r
* get Provider config values\r
return result;\r
}\r
\r
- NSTopicsList *NSConsumer::getConsumerTopicList()\r
+ std::shared_ptr<NSTopicsList> NSConsumer::getConsumerTopicList()\r
{\r
NS_LOG(DEBUG, "getConsumerTopicList - IN");\r
if (!isValid())\r
}\r
::NSTopicLL *topics = NSProviderGetConsumerTopics(getConsumerId().c_str());\r
\r
- NSTopicsList *nsTopics = new NSTopicsList(topics);\r
+ std::shared_ptr<NSTopicsList> nsTopics = std::make_shared<NSTopicsList>(topics, false);\r
NS_LOG(DEBUG, "getConsumerTopicList - OUT");\r
return nsTopics;\r
}\r
return result;\r
}\r
\r
- NSTopicsList *NSProviderService::getRegisteredTopicList()\r
+ std::shared_ptr<NSTopicsList> NSProviderService::getRegisteredTopicList()\r
{\r
NS_LOG(DEBUG, "getRegisteredTopicList - IN");\r
::NSTopicLL *topics = NSProviderGetTopics();\r
\r
- NSTopicsList *nsTopics = new NSTopicsList(topics);\r
+ std::shared_ptr<NSTopicsList> nsTopics = std::make_shared<NSTopicsList>(topics, false);\r
NS_LOG(DEBUG, "getRegisteredTopicList - OUT");\r
return nsTopics;\r
}\r
ASSERT_NE(nullptr, g_provider) << "error: discovery failure";
- std::list<OIC::Service::NSTopic *> retTopic = g_provider->getTopicList()->getTopicsList();
+ auto retTopic = g_provider->getTopicList()->getTopicsList();
auto it1 = retTopic.begin();
auto it2 = topics.begin();
while ( it1 != retTopic.end() || it2 != topics.end() )
{
- if ((*it1)->getTopicName() != *it2)
+ if ((*it1).getTopicName() != *it2)
{
isSame = false; break;
}
{
ASSERT_NE(nullptr, g_provider) << "error: discovery failure";
- OIC::Service::NSTopicsList *retTopic = g_provider->getTopicList();
+ auto retTopic = g_provider->getTopicList();
for (auto it : retTopic->getTopicsList())
{
- std::cout << "Topic Name: " << it->getTopicName() << std::endl;
- std::cout << "state : " << (int) it->getState() << std::endl;
- it->setState(OIC::Service::NSTopic::NSTopicState::SUBSCRIBED);
+ std::cout << "Topic Name: " << it.getTopicName() << std::endl;
+ std::cout << "state : " << (int) it.getState() << std::endl;
+ it.setState(OIC::Service::NSTopic::NSTopicState::SUBSCRIBED);
}
OIC::Service::NSResult ret = g_provider->updateTopicList(retTopic);
std::cout << "ret : " << (int) ret << std::endl;
ASSERT_NE(nullptr, g_consumer) << "error: discovery failure";
g_consumer->acceptSubscription(false);
-
OIC::Service::NSMessage msg = OIC::Service::NSProviderService::getInstance()->createMessage();
msgID = (int)msg.getMessageId();
msg.setTitle(std::string("Title"));
std::unique_lock< std::mutex > lock { mutexForCondition };
responseCon.wait_for(lock, g_waitForResponse);
bool isSame = false;
- OIC::Service::NSTopicsList *topicList =
+ auto topicList =
OIC::Service::NSProviderService::getInstance()->getRegisteredTopicList();
if (!topicList)
{
int i = 0;
for (auto itr : topicList->getTopicsList())
{
- compString[i] = itr->getTopicName(); i++;
+ compString[i] = itr.getTopicName(); i++;
}
std::cout << compString[0] << std::endl;
std::cout << compString[1] << std::endl;
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str1);
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str2);
- if (topicList != nullptr)
- {
- delete topicList;
- }
responseCon.wait_for(lock, g_waitForResponse);
}
std::unique_lock< std::mutex > lock { mutexForCondition };
responseCon.wait_for(lock, g_waitForResponse);
bool isSame = false;
- OIC::Service::NSTopicsList *topicList =
+ auto topicList =
OIC::Service::NSProviderService::getInstance()->getRegisteredTopicList();
if (!topicList)
{
}
else
{
- std::list<OIC::Service::NSTopic *>::iterator it = topicList->getTopicsList().begin();
- std::string compStr = (*it)->getTopicName() ;
+ auto topic = topicList->getTopicsList();
+ auto it = topic.begin();
+ std::string compStr = (*it).getTopicName() ;
std::cout << compStr << std::endl;
if (str1.compare(compStr) == 0 )
{
EXPECT_EQ(isSame, true);
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str1);
- if (topicList != nullptr)
- {
- delete topicList;
- }
responseCon.wait_for(lock, g_waitForResponse);
}
responseCon.wait_for(lock, g_waitForResponse);
bool isSame = false;
- OIC::Service::NSTopicsList *topicList = g_consumer->getConsumerTopicList();
+ auto topicList = g_consumer->getConsumerTopicList();
if (!topicList)
{
int i = 0, state[10] = {0};
for (auto itr : topicList->getTopicsList())
{
- compString[i] = itr->getTopicName();
- state[i++] = (int) itr->getState();
+ compString[i] = itr.getTopicName();
+ state[i++] = (int) itr.getState();
}
std::cout << compString[0] << std::endl;
std::cout << compString[1] << std::endl;
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str1);
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str2);
- if (topicList != nullptr)
- {
- delete topicList;
- }
responseCon.wait_for(lock, g_waitForResponse);
}
responseCon.wait_for(lock, g_waitForResponse);
bool isSame = false;
- OIC::Service::NSTopicsList *topicList = g_consumer->getConsumerTopicList();
+ auto topicList = g_consumer->getConsumerTopicList();
if (!topicList)
{
int i = 0, state[10] = {0};
for (auto itr : topicList->getTopicsList())
{
- compString[i] = itr->getTopicName();
- state[i++] = (int) itr->getState();
+ compString[i] = itr.getTopicName();
+ state[i++] = (int) itr.getState();
}
std::cout << compString[0] << std::endl;
std::cout << compString[1] << std::endl;
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str1);
OIC::Service::NSProviderService::getInstance()->unregisterTopic(str2);
-
- if (topicList != nullptr)
- {
- delete topicList;
- }
responseCon.wait_for(lock, g_waitForResponse);
}