fix build error and syntax error.
change from normal pointer to smart pointer.
Change-Id: I52ea5b2cf6b7da34fed9f9271e942f45185fae20
Signed-off-by: jyong2.kim <jyong2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1231
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
--- /dev/null
+#******************************************************************
+#
+# Copyright 2015 Samsung Electronics All Rights Reserved.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+##
+# ResourceBroker build script
+##
+
+Import('env')
+
+if env.get('RELEASE'):
+ env.AppendUnique(CCFLAGS = ['-Os'])
+ env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+else:
+ env.AppendUnique(CCFLAGS = ['-g'])
+
+if env.get('LOGGING'):
+ env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+
+lib_env = env.Clone()
+SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
+resourcebroker_env = lib_env.Clone()
+
+target_os = env.get('TARGET_OS')
+######################################################################
+# Build flags
+######################################################################
+resourcebroker_env.AppendUnique(CPPPATH = ['include'])
+resourcebroker_env.AppendUnique(CPPPATH = ['../common/primitiveResource/include'])
+resourcebroker_env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'libcoap'])
+
+if target_os not in ['windows', 'winrt']:
+ resourcebroker_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])
+
+if target_os == 'linux':
+ resourcebroker_env.AppendUnique(LIBS = ['pthread'])
+
+######################################################################
+# Source files and Targets
+######################################################################
+CACHE_SRC_DIR = 'src/'
+resourcebroker_src = [
+ CACHE_SRC_DIR + 'ResourceBroker.cpp',
+ CACHE_SRC_DIR + 'ResourcePresence.cpp',
+ CACHE_SRC_DIR + '../../common/primitiveResource/src/PrimitiveResource.cpp',
+ CACHE_SRC_DIR + '../../common/primitiveResource/src/ResourceAttributes.cpp',
+ CACHE_SRC_DIR + 'DevicePresence.cpp']
+
+if target_os in ['tizen','android'] :
+ resourcebrokersdk = resourcebroker_env.SharedLibrary('ResourceBroker', resourcebroker_src)
+else :
+ resourcebrokersdk = resourcebroker_env.StaticLibrary('ResourceBroker', resourcebroker_src)
+
+resourcebroker_env.InstallTarget(resourcebrokersdk, 'libResouceBroker')
+
+# Go to build sample apps
+#SConscript('SampleApp/SConscript')
+
#include "PrimitiveResource.h"
#define BROKER_TAG PCF("BROKER")
-#define BASE_LAYER_C 0
#define BROKER_TRANSPORT OCConnectivityType::OC_IPV4
+struct BrokerRequesterInfo;
+class ResourcePresence;
+class DevicePresence;
+
+enum class DISCOVER_TRANSACTION;
+enum class BROKER_STATE;
+
typedef std::function<void(std::shared_ptr<OC::OCResource>)> FindCB;
+typedef std::function<DISCOVER_TRANSACTION(std::shared_ptr<PrimitiveResource> resource)> DiscoverCB;
typedef std::function<OCStackResult(BROKER_STATE)> BrokerCB;
-typedef std::function<DISCOVER_TRANSACTION(std::shared_ptr<PrimitiveResource> resource)> DiscoverCB;
+typedef std::shared_ptr<PrimitiveResource> PrimitiveResourcePtr;
+typedef std::shared_ptr<BrokerRequesterInfo> BrokerRequesterInfoPtr;
+
+typedef std::shared_ptr<ResourcePresence> ResourcePresencePtr;
+typedef std::shared_ptr<DevicePresence> DevicePresencePtr;
enum class DISCOVER_TRANSACTION
{
DESTROYED
};
+struct BrokerRequesterInfo
+{
+ BrokerCB brockerCB;
+};
+
typedef OC::OCPlatform::OCPresenceHandle BasePresenceHandle;
typedef std::function<void(OCStackResult, const unsigned int,
const std::string&)> SubscribeCallback;
class DevicePresence
{
public:
- DevicePresence(PrimitiveResource & pResource, BrokerCB _cb);
+ DevicePresence(PrimitiveResourcePtr pResource, BrokerCB _cb);
~DevicePresence();
- DevicePresence * createPresenceHandler(PrimitiveResource & pResource, BrokerCB _cb);
-
- void addPresenceResource(PrimitiveResource & pResource, BrokerCB _cb);
- ResourcePresence * findResourcePresence(PrimitiveResource & pResource, BrokerCB _cb);
+ void addPresenceResource(PrimitiveResourcePtr pResource, BrokerCB _cb);
+ ResourcePresencePtr findResourcePresence(PrimitiveResourcePtr pResource, BrokerCB _cb);
private:
SubscribeCallback pSubscribeRequestCB;
- std::list<ResourcePresence *> * presenceResourceList;
+ std::unique_ptr<std::list<ResourcePresencePtr>> presenceResourceList;
BasePresenceHandle presenceHandle;
void subscribeCB(OCStackResult ret, const unsigned int seq, const std::string& msg);
public:
ResourceBroker * getInstance();
- OCStackResult hostResource(PrimitiveResource & pResource, BrokerCB cb);
+ OCStackResult hostResource(PrimitiveResourcePtr pResource, BrokerCB cb);
- OCStackResult cancelHostResource(PrimitiveResource & pResource);
+ OCStackResult cancelHostResource(PrimitiveResourcePtr pResource);
- OCStackResult getResourceState(PrimitiveResource & pResource);
+ OCStackResult getResourceState(PrimitiveResourcePtr pResource);
private:
ResourceBroker();
static ResourceBroker * s_instance;
static std::mutex s_mutexForCreation;
- static std::list< DevicePresence * > s_presenceList;
+ static std::unique_ptr<std::list< DevicePresencePtr >> s_presenceList;
- ResourcePresence * findResourcePresence(PrimitiveResource& pResource, BrokerCB cb);
- DevicePresence * findDevicePresence(PrimitiveResource& pResource, BrokerCB cb);
+ ResourcePresencePtr findResourcePresence(PrimitiveResourcePtr pResource, BrokerCB cb);
+ DevicePresencePtr findDevicePresence(PrimitiveResourcePtr pResource, BrokerCB cb);
};
#endif /* RESOURCEBROKER_H_ */
#include <functional>
#include <list>
+#include <string>
#include "BrokerTypes.h"
-struct BrokerRequesterInfo
-{
- BrokerCB brockerCB;
-};
-
class ResourcePresence
{
public:
- ResourcePresence(PrimitiveResource & pResource, BrokerCB _cb);
+ ResourcePresence(PrimitiveResourcePtr pResource, BrokerCB _cb);
~ResourcePresence();
void addBrokerRequesterCB(BrokerCB _cb);
void requestResourceState();
private:
- PrimitiveResource & primitiveResource;
+ PrimitiveResourcePtr primitiveResource;
- std::list<BrokerRequesterInfo *> * requesterList;
+ std::unique_ptr<std::list<BrokerRequesterInfoPtr>> requesterList;
GetCallback pGetCB;
void GetCB(const HeaderOptions &hos, const ResponseStatement& rep, int seq);
#include "DevicePresence.h"
-DevicePresence::DevicePresence(PrimitiveResource & pResource, BrokerCB _cb)
+DevicePresence::DevicePresence(PrimitiveResourcePtr pResource, BrokerCB _cb)
{
- address = pResource.getHost();
pSubscribeRequestCB = std::bind(&DevicePresence::subscribeCB, this,
std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
- presenceResourceList = new std::list<ResourcePresence *>();
+ presenceResourceList
+ = std::unique_ptr<std::list<ResourcePresencePtr>>(new std::list<ResourcePresencePtr>);
addPresenceResource(pResource, _cb);
- OC::OCPlatform::subscribePresence(presenceHandle, address,
+ OC::OCPlatform::subscribePresence(presenceHandle, pResource->getHost(),
BROKER_TRANSPORT, pSubscribeRequestCB);
}
// TODO Auto-generated destructor stub
OC::OCPlatform::unsubscribePresence(presenceHandle);
presenceResourceList->clear();
- delete presenceResourceList;
}
-void DevicePresence::addPresenceResource(PrimitiveResource & pResource, BrokerCB _cb)
+void DevicePresence::addPresenceResource(PrimitiveResourcePtr pResource, BrokerCB _cb)
{
- ResourcePresence * newPresenceResource = new ResourcePresence(pResource, _cb);
+ ResourcePresencePtr newPresenceResource = ResourcePresencePtr(new ResourcePresence(pResource, _cb));
presenceResourceList->push_back(newPresenceResource);
}
-ResourcePresence * DevicePresence::findPresenceResource(PrimitiveResource & pResource, BrokerCB _cb)
+ResourcePresencePtr DevicePresence::findResourcePresence(PrimitiveResourcePtr pResource, BrokerCB _cb)
{
- ResourcePresence * retResource = NULL;
- if (presenceResourceList->empty() || pResource.isEmpty())
+ ResourcePresencePtr retResource(nullptr);
+ if (presenceResourceList->empty())// || pResource.isEmpty())
{
- return NULL;
+ return retResource;
}
else
{
- std::list<ResourcePresence *>::iterator it;
+ std::list<ResourcePresencePtr>::iterator it;
- ResourcePresence * temp = new ResourcePresence(pResource, _cb);
+ ResourcePresencePtr temp = ResourcePresencePtr(new ResourcePresence(pResource, _cb));
it = std::find(presenceResourceList->begin(), presenceResourceList->end(), temp);
- delete temp;
if(it == presenceResourceList->end())
{
- return NULL;
+ return retResource;
}
else
{
- retResource = it;
+ retResource = *it;
}
}
#define DEFAULT_CONTEXT_VALUE 0x99
ResourceBroker * ResourceBroker::s_instance = NULL;
-std::list< DevicePresence * > ResourceBroker::s_presenceList = NULL;
+std::unique_ptr<std::list< DevicePresencePtr >> ResourceBroker::s_presenceList(nullptr);
ResourceBroker::ResourceBroker()
{
// TODO Auto-generated constructor stub
- if(s_presenceList.empty())
+ if(s_presenceList == nullptr)
{
- s_presenceList = new std::list< DevicePresence * >();
+ s_presenceList = std::unique_ptr<std::list< DevicePresencePtr >>(new std::list<DevicePresencePtr>);
}
}
ResourceBroker::~ResourceBroker()
{
// TODO Auto-generated destructor stub
- if(!s_presenceList.empty())
+ if(s_presenceList != nullptr)
{
- s_presenceList.clear();
+ s_presenceList->clear();
}
- delete s_presenceList;
}
ResourceBroker * ResourceBroker::getInstance()
return s_instance;
}
-OCStackResult ResourceBroker::hostResource(PrimitiveResource & pResource, BrokerCB cb)
+OCStackResult ResourceBroker::hostResource(PrimitiveResourcePtr pResource, BrokerCB cb)
{
OCStackResult ret = OC_STACK_INVALID_PARAM;
- if (pResource.getUri().empty() || pResource.getHost().empty())
+ if (pResource->getUri().empty() || pResource->getHost().empty())
{
return ret;
}
return ret;
}
- DevicePresence * presenceItem = findDevicePresence(pResource, cb);
+ DevicePresencePtr presenceItem = findDevicePresence(pResource, cb);
if(presenceItem == NULL)
{
- DevicePresence *newItem = new DevicePresence(pResource, cb);
- s_presenceList.push_back(newItem);
+ DevicePresencePtr newItem = DevicePresencePtr(new DevicePresence(pResource, cb));
+ s_presenceList->push_back(newItem);
}
else
{
return ret;
}
-DevicePresence * ResourceBroker::findDevicePresence(PrimitiveResource& pResource, BrokerCB cb)
+DevicePresencePtr ResourceBroker::findDevicePresence(PrimitiveResourcePtr pResource, BrokerCB cb)
{
- DevicePresence * retDevice = NULL;
- if (s_presenceList.empty() || pResource.isEmpty())
+ DevicePresencePtr retDevice(nullptr);
+ if (s_presenceList->empty())// || pResource->isEmpty())
{
- return NULL;
+ return retDevice;
}
else
{
- std::list<DevicePresence *>::iterator it;
+ std::list<DevicePresencePtr>::iterator it;
- DevicePresence * temp = new DevicePresence(pResource, cb);
- it = std::find(s_presenceList.begin(), s_presenceList.end(), temp);
- delete temp;
+ DevicePresencePtr temp = DevicePresencePtr(new DevicePresence(pResource, cb));
+ it = std::find(s_presenceList->begin(), s_presenceList->end(), temp);
- if(it == s_presenceList.end())
+ if(it == s_presenceList->end())
{
- return NULL;
+ return retDevice;
}
else
{
- retDevice = it;
+ retDevice = *it;
}
}
return retDevice;
}
-ResourcePresence * ResourceBroker::findResourcePresence(PrimitiveResource & pResource, BrokerCB cb)
+ResourcePresencePtr ResourceBroker::findResourcePresence(PrimitiveResourcePtr pResource, BrokerCB cb)
{
- ResourcePresence * retResource = NULL;
- if (s_presenceList.empty() || pResource.isEmpty())
+ ResourcePresencePtr retResource(nullptr);
+ if (s_presenceList->empty())// || pResource.isEmpty())
{
- return NULL;
+ return retResource;
}
else
{
- DevicePresence * foundDevice = findDevicePresence(pResource, cb);
+ DevicePresencePtr foundDevice = findDevicePresence(pResource, cb);
retResource = foundDevice->findResourcePresence(pResource, cb);
}
#include "ResourcePresence.h"
-ResourcePresence::ResourcePresence(PrimitiveResource & pResource, BrokerCB _cb)
+ResourcePresence::ResourcePresence(PrimitiveResourcePtr pResource, BrokerCB _cb)
{
primitiveResource = pResource;
pGetCB = std::bind(&ResourcePresence::GetCB, this,
std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
- requesterList = new std::list<BrokerRequesterInfo *>();
+ requesterList
+ = std::unique_ptr<std::list<BrokerRequesterInfoPtr>>(new std::list<BrokerRequesterInfoPtr>);
+
addBrokerRequesterCB(_cb);
}
ResourcePresence::~ResourcePresence()
{
requesterList->clear();
- delete requesterList;
}
void ResourcePresence::addBrokerRequesterCB(BrokerCB _cb)
{
- BrokerRequesterInfo *newRequester = new BrokerRequesterInfo();
+ BrokerRequesterInfoPtr newRequester = BrokerRequesterInfoPtr(new BrokerRequesterInfo());
newRequester->brockerCB = _cb;
requesterList->push_back(newRequester);
}
void ResourcePresence::requestResourceState()
{
- primitiveResource.requestGet(pGetCB);
+ primitiveResource->requestGet(pGetCB);
}
void ResourcePresence::GetCB(const HeaderOptions &hos, const ResponseStatement& rep, int seq)