1 //******************************************************************
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 #include "NSTopicsList.h"
22 #include "oic_malloc.h"
28 NSTopicsList::NSTopicsList(::NSTopicLL *topics)
30 ::NSTopicLL *topicsNode = nullptr;
33 while (topicsNode != nullptr)
35 addTopic(topicsNode->topicName, (NSTopic::NSTopicState)topicsNode->state);
36 topicsNode = topicsNode->next;
40 NSTopicsList::NSTopicsList(const NSTopicsList &topicsList)
42 for (auto it : topicsList.getTopicsList())
44 addTopic(it->getTopicName(), it->getState());
48 NSTopicsList &NSTopicsList::operator=(const NSTopicsList &topicsList)
50 for (auto it : topicsList.getTopicsList())
52 this->addTopic(it->getTopicName(), it->getState());
57 NSTopicsList::~NSTopicsList()
59 for (auto it : getTopicsList())
63 getTopicsList().clear();
66 void NSTopicsList::addTopic(const std::string &topicName, NSTopic::NSTopicState state)
68 m_topicsList.push_back(new NSTopic(topicName, state));
71 void NSTopicsList::removeTopic(const std::string &topicName)
73 for (auto it : getTopicsList())
75 if (it->getTopicName().compare(topicName) == 0)
77 m_topicsList.remove(it);
82 std::list<NSTopic *> NSTopicsList::getTopicsList() const