From 84667c23cf80037b000ae83e9114852173eb6d67 Mon Sep 17 00:00:00 2001 From: coderhyme Date: Sat, 4 Jul 2015 11:35:48 +0900 Subject: [PATCH] Fix setting callback to use move operation in PrimitiveResource It was copying callback which is unneccesary overhead. Change-Id: Iee927bb1192de7d8b8af71922f948e0428073ca2 Signed-off-by: coderhyme Reviewed-on: https://gerrit.iotivity.org/gerrit/1515 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../primitiveResource/include/internal/PrimitiveResourceImpl.h | 10 +++++----- .../modules/common/primitiveResource/src/PrimitiveResource.cpp | 5 +++-- .../primitiveResource/unittests/PrimitiveResourceTest.cpp | 2 -- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/service/resource-manipulation/modules/common/primitiveResource/include/internal/PrimitiveResourceImpl.h b/service/resource-manipulation/modules/common/primitiveResource/include/internal/PrimitiveResourceImpl.h index d56d05d..b840639 100644 --- a/service/resource-manipulation/modules/common/primitiveResource/include/internal/PrimitiveResourceImpl.h +++ b/service/resource-manipulation/modules/common/primitiveResource/include/internal/PrimitiveResourceImpl.h @@ -60,8 +60,8 @@ namespace OIC const OC::QueryParamsMap&, OC::GetCallback); invokeOC(m_baseResource, static_cast< GetFunc >(&BaseResource::get), - OC::QueryParamsMap(), - std::bind(callback, _1, std::bind(createResponseStatement, _2), _3)); + OC::QueryParamsMap(), std::bind(std::move(callback), _1, + std::bind(createResponseStatement, _2), _3)); } void requestSet(const ResourceAttributes& attrs, SetCallback callback) override @@ -74,8 +74,8 @@ namespace OIC invokeOC(m_baseResource, static_cast< PutFunc >(&BaseResource::put), ResourceAttributesConverter::toOCRepresentation(attrs), - OC::QueryParamsMap{ }, - std::bind(callback, _1, std::bind(createResponseStatement, _2), _3)); + OC::QueryParamsMap{ }, std::bind(std::move(callback), _1, + std::bind(createResponseStatement, _2), _3)); } void requestObserve(ObserveCallback callback) override @@ -87,7 +87,7 @@ namespace OIC invokeOC(m_baseResource, static_cast< ObserveFunc >(&BaseResource::observe), OC::ObserveType::ObserveAll, OC::QueryParamsMap{ }, - bind(callback, _1, bind(createResponseStatement, _2), _3, _4)); + bind(std::move(callback), _1, bind(createResponseStatement, _2), _3, _4)); } void cancelObserve() override diff --git a/service/resource-manipulation/modules/common/primitiveResource/src/PrimitiveResource.cpp b/service/resource-manipulation/modules/common/primitiveResource/src/PrimitiveResource.cpp index 0f18065..b558fc9 100755 --- a/service/resource-manipulation/modules/common/primitiveResource/src/PrimitiveResource.cpp +++ b/service/resource-manipulation/modules/common/primitiveResource/src/PrimitiveResource.cpp @@ -44,8 +44,9 @@ namespace OIC OCConnectivityType, OC::FindCallback); invokeOCFunc(static_cast(OC::OCPlatform::findResource), - host, resourceURI, connectivityType, (OC::FindCallback) std::bind(callback, - std::bind(&PrimitiveResource::create, std::placeholders::_1))); + host, resourceURI, connectivityType, (OC::FindCallback) + std::bind(std::move(callback), + std::bind(&PrimitiveResource::create, std::placeholders::_1))); } } diff --git a/service/resource-manipulation/modules/common/primitiveResource/unittests/PrimitiveResourceTest.cpp b/service/resource-manipulation/modules/common/primitiveResource/unittests/PrimitiveResourceTest.cpp index a0ec6f3..d3dd65b 100644 --- a/service/resource-manipulation/modules/common/primitiveResource/unittests/PrimitiveResourceTest.cpp +++ b/service/resource-manipulation/modules/common/primitiveResource/unittests/PrimitiveResourceTest.cpp @@ -191,8 +191,6 @@ public: }; - - TEST_F(DiscoverResourceTest, CallbackIsInvokedWhenResourceIsDiscovered) { mocks.ExpectCallFuncOverload(static_cast(OC::OCPlatform::findResource)).Do( -- 2.7.4