It turned out there is no reason for users to set the result code.
The only scenario that RCSResponses have not OK for the result is that there is an error occurred
and in that case it should be an exception on resource-encapsulation layer.
Change-Id: Icef409ea5e224f9f02e12e174231baa4e11c5a33
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/2705
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
if (responseAttrsObj)
{
- return RESPONSE::create(toNativeAttributes(env.get(), responseAttrsObj), OC_EH_OK,
- errorCode);
+ return RESPONSE::create(toNativeAttributes(env.get(), responseAttrsObj), errorCode);
}
- return RESPONSE::create(OC_EH_OK, errorCode);
+ return RESPONSE::create(errorCode);
}
RCSGetResponse onGetRequest(const RCSRequest& request, const RCSResourceAttributes& attrs,
const JavaGlobalRef& listener)
{
ScopedEnvWrapper env;
- EXPECT_RET(env, "env is null!", RCSGetResponse::create(OC_EH_ERROR, -1));
+ EXPECT_RET(env, "env is null!", RCSGetResponse::create(-1));
try
{
env->ExceptionDescribe();
env->ExceptionClear();
}
- return RCSGetResponse::create(OC_EH_ERROR, -1);
+ return RCSGetResponse::create({ }, -1);
}
RCSSetResponse onSetRequest(const RCSRequest& request, const RCSResourceAttributes& attrs,
const JavaGlobalRef& listener)
{
ScopedEnvWrapper env;
- EXPECT_RET(env, "env is null!", RCSSetResponse::create(OC_EH_ERROR, -1));
+ EXPECT_RET(env, "env is null!", RCSSetResponse::create(-1));
try
{
env->ExceptionDescribe();
env->ExceptionClear();
}
- return RCSSetResponse::create(OC_EH_ERROR, -1);
+ return RCSSetResponse::create(-1);
}
#include <cstdint>
#include <memory>
-#include <octypes.h>
-
namespace OIC
{
namespace Service
* Creates a RCSGetResponse with a result and error code passed.
* The attributes of the RCSResourceObject will be set as the result attributes.
*
- * @param result The response result.
* @param errorCode The error code to set in response.
*
*/
- static RCSGetResponse create(const OCEntityHandlerResult& result, int errorCode);
+ static RCSGetResponse create(int errorCode);
/**
* Creates a RCSGetResponse with custom attributes.
* instead of the one the RCSResourceObject holds.
*
* @param attrs The attributes to set.
- * @param result The response result.
* @param errorCode The error code for response.
*
* @see RCSResourceAttributes
*
*/
- static RCSGetResponse create(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode);
+ static RCSGetResponse create(const RCSResourceAttributes& attrs, int errorCode);
/**
* @override
*/
- static RCSGetResponse create(RCSResourceAttributes&& attrs,
- const OCEntityHandlerResult& result, int errorCode);
+ static RCSGetResponse create(RCSResourceAttributes&& attrs, int errorCode);
//! @cond
RequestHandler* getHandler() const;
* with a result and error code passed.
* The attributes of the RCSResourceObject will be set as the result attributes.
*
- * @param result The response result.
* @param errorCode The error code to set in response.
*
*/
- static RCSSetResponse accept(const OCEntityHandlerResult& result, int errorCode);
+ static RCSSetResponse accept(int errorCode);
/**
* Creates a default RCSSetResponse that has AcceptanceMethod::IGNORE.
* with a result and error code passed.
* The attributes of the RCSResourceObject will be set as the result attributes.
*
- * @param result The response result.
* @param errorCode The error code to set in response.
*
*/
- static RCSSetResponse ignore(const OCEntityHandlerResult& result, int errorCode);
+ static RCSSetResponse ignore(int errorCode);
/**
* Creates a RCSSetResponse that has AcceptanceMethod::DEFAULT
* with a result and error code passed.
* The attributes of the RCSResourceObject will be set as the result attributes.
*
- * @param result The response result.
* @param errorCode The error code to set in response.
*
*/
- static RCSSetResponse create(const OCEntityHandlerResult& result, int errorCode);
+ static RCSSetResponse create(int errorCode);
/**
* Creates a RCSSetResponse that has AcceptanceMethod::DEFAULT with custom attributes.
/**
* @override
*/
- static RCSSetResponse create(RCSResourceAttributes &&attrs);
+ static RCSSetResponse create(RCSResourceAttributes&& attrs);
/**
* Creates a RCSSetResponse with a result and error code passed.
* @see RCSResourceAttributes
*
*/
- static RCSSetResponse create(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode);
-
+ static RCSSetResponse create(const RCSResourceAttributes& attrs, int errorCode);
/**
* @override
*/
- static RCSSetResponse create(RCSResourceAttributes &&attrs,
- const OCEntityHandlerResult &result, int errorCode);
+ static RCSSetResponse create(RCSResourceAttributes&& attrs, int errorCode);
//! @cond/
RCSGetResponse ResourceContainerImpl::getRequestHandler(const RCSRequest &request,
const RCSResourceAttributes &)
{
- OCEntityHandlerResult result = OC_EH_ERROR;
-
RCSResourceAttributes attr;
std::string strResourceUri = request.getResourceUri();
boost::thread getThread(getFunction);
getThread.timed_join(boost::posix_time::seconds(BUNDLE_SET_GET_WAIT_SEC));
- result = OC_EH_OK;
}
}
- return RCSGetResponse::create(attr, result, 200);
+ return RCSGetResponse::create(std::move(attr), 200);
}
RCSSetResponse ResourceContainerImpl::setRequestHandler(const RCSRequest &request,
const RCSResourceAttributes &attributes)
{
- OCEntityHandlerResult result = OC_EH_ERROR;
-
RCSResourceAttributes attr;
std::list<std::string> lstAttributes;
std::string strResourceUri = request.getResourceUri();
};
boost::thread setThread(setFunction);
setThread.timed_join(boost::posix_time::seconds(BUNDLE_SET_GET_WAIT_SEC));
-
- result = OC_EH_OK;
}
}
- return RCSSetResponse::create(attr, result, 200);
+ return RCSSetResponse::create(std::move(attr), 200);
}
void ResourceContainerImpl::onNotificationReceived(const std::string &strResourceUri)
typedef std::shared_ptr< RequestHandler > Pre;
static constexpr int DEFAULT_ERROR_CODE = 200;
- static constexpr OCEntityHandlerResult DEFAULT_RESULT = OC_EH_OK;
RequestHandler();
RequestHandler(const RequestHandler&) = delete;
RequestHandler(RequestHandler&&) = default;
- RequestHandler(const OCEntityHandlerResult& result, int errorCode);
+ RequestHandler(int errorCode);
- RequestHandler(const RCSResourceAttributes&,
- const OCEntityHandlerResult& result = DEFAULT_RESULT,
- int errorCode = DEFAULT_ERROR_CODE);
-
- RequestHandler(RCSResourceAttributes&&,
- const OCEntityHandlerResult& result = DEFAULT_RESULT,
- int errorCode = DEFAULT_ERROR_CODE);
+ RequestHandler(const RCSResourceAttributes&, int errorCode = DEFAULT_ERROR_CODE);
+ RequestHandler(RCSResourceAttributes&&, int errorCode = DEFAULT_ERROR_CODE);
virtual ~RequestHandler() { };
SetRequestHandler();
- SetRequestHandler(const OCEntityHandlerResult& result, int errorCode);
+ SetRequestHandler(int errorCode);
- SetRequestHandler(const RCSResourceAttributes&,
- const OCEntityHandlerResult& result = DEFAULT_RESULT,
- int errorCode = DEFAULT_ERROR_CODE);
+ SetRequestHandler(const RCSResourceAttributes&, int errorCode = DEFAULT_ERROR_CODE);
- SetRequestHandler(RCSResourceAttributes&&,
- const OCEntityHandlerResult& result = DEFAULT_RESULT,
- int errorCode = DEFAULT_ERROR_CODE);
+ SetRequestHandler(RCSResourceAttributes&&, int errorCode = DEFAULT_ERROR_CODE);
AttrKeyValuePairs applyAcceptanceMethod(RCSSetResponse::AcceptanceMethod,
RCSResourceObject&, const RCSResourceAttributes&) const;
{
RCSGetResponse RCSGetResponse::defaultAction()
{
- static RCSGetResponse defaultRes { std::make_shared< RequestHandler >() };
-
- return defaultRes;
+ return std::make_shared< RequestHandler >();
}
- RCSGetResponse RCSGetResponse::create(const OCEntityHandlerResult& result,
- int errorCode)
+ RCSGetResponse RCSGetResponse::create(int errorCode)
{
return RCSGetResponse {
- std::make_shared< RequestHandler >( result, errorCode) };
+ std::make_shared< RequestHandler >( errorCode) };
}
RCSGetResponse RCSGetResponse::create(const RCSResourceAttributes& attrs)
return RCSGetResponse { std::make_shared< RequestHandler >(attrs) };
}
- RCSGetResponse RCSGetResponse::create(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode)
+ RCSGetResponse RCSGetResponse::create(const RCSResourceAttributes& attrs, int errorCode)
{
- return RCSGetResponse {
- std::make_shared< RequestHandler >(attrs, result, errorCode) };
+ return RCSGetResponse { std::make_shared< RequestHandler >(attrs, errorCode) };
}
RCSGetResponse RCSGetResponse::create(RCSResourceAttributes&& result)
std::make_shared< RequestHandler >(std::move(result)) };
}
- RCSGetResponse RCSGetResponse::create(RCSResourceAttributes&& attrs,
- const OCEntityHandlerResult& result, int errorCode)
+ RCSGetResponse RCSGetResponse::create(RCSResourceAttributes&& attrs, int errorCode)
{
return RCSGetResponse { std::make_shared< RequestHandler >(
- std::move(attrs), result, errorCode) };
+ std::move(attrs), errorCode) };
}
RCSGetResponse::RCSGetResponse(std::shared_ptr< RequestHandler >&& handler) :
return defaultAction().setAcceptanceMethod(AcceptanceMethod::ACCEPT);
}
- RCSSetResponse RCSSetResponse::accept(const OCEntityHandlerResult& result,
- int errorCode)
+ RCSSetResponse RCSSetResponse::accept(int errorCode)
{
- return create(result, errorCode).setAcceptanceMethod(AcceptanceMethod::ACCEPT);
+ return create(errorCode).setAcceptanceMethod(AcceptanceMethod::ACCEPT);
}
RCSSetResponse RCSSetResponse::ignore()
return defaultAction().setAcceptanceMethod(AcceptanceMethod::IGNORE);
}
- RCSSetResponse RCSSetResponse::ignore(const OCEntityHandlerResult& result,
- int errorCode)
+ RCSSetResponse RCSSetResponse::ignore(int errorCode)
{
- return create(result, errorCode).setAcceptanceMethod(AcceptanceMethod::IGNORE);
+ return create(errorCode).setAcceptanceMethod(AcceptanceMethod::IGNORE);
}
- RCSSetResponse RCSSetResponse::create(const OCEntityHandlerResult& result,
- int errorCode)
+ RCSSetResponse RCSSetResponse::create(int errorCode)
{
- return std::make_shared< SetRequestHandler >(result, errorCode);
+ return std::make_shared< SetRequestHandler >(errorCode);
}
RCSSetResponse RCSSetResponse::create(const RCSResourceAttributes& attrs)
return std::make_shared< SetRequestHandler >(attrs);
}
- RCSSetResponse RCSSetResponse::create(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode)
+ RCSSetResponse RCSSetResponse::create(const RCSResourceAttributes& attrs, int errorCode)
{
- return std::make_shared< SetRequestHandler >(attrs, result, errorCode);
+ return std::make_shared< SetRequestHandler >(attrs, errorCode);
}
RCSSetResponse RCSSetResponse::create(RCSResourceAttributes&& result)
return std::make_shared< SetRequestHandler >(std::move(result));
}
- RCSSetResponse RCSSetResponse::create(RCSResourceAttributes&& attrs,
- const OCEntityHandlerResult& result, int errorCode)
+ RCSSetResponse RCSSetResponse::create(RCSResourceAttributes&& attrs, int errorCode)
{
- return std::make_shared< SetRequestHandler >(std::move(attrs), result, errorCode);
+ return std::make_shared< SetRequestHandler >(std::move(attrs), errorCode);
}
RCSSetResponse::RCSSetResponse(std::shared_ptr< SetRequestHandler >&& handler) :
#include <RCSResourceObject.h>
#include <ResourceAttributesUtils.h>
+#include <octypes.h>
+
namespace
{
using namespace OIC::Service;
}
std::shared_ptr< OC::OCResourceResponse > doBuildResponse(RCSResourceObject& resource,
- const OCEntityHandlerResult result, int errorCode, OCRepresentationGetter ocRepGetter)
+ int errorCode, OCRepresentationGetter ocRepGetter)
{
auto response = std::make_shared< OC::OCResourceResponse >();
- response->setResponseResult(result);
+ response->setResponseResult(OC_EH_OK);
response->setErrorCode(errorCode);
response->setResourceRepresentation(ocRepGetter(resource));
namespace Service
{
constexpr int RequestHandler::DEFAULT_ERROR_CODE;
- constexpr OCEntityHandlerResult RequestHandler::DEFAULT_RESULT;
RequestHandler::RequestHandler() :
- m_holder{ std::bind(doBuildResponse, std::placeholders::_1, DEFAULT_RESULT,
- DEFAULT_ERROR_CODE, getOCRepresentationFromResource) }
+ m_holder{ std::bind(doBuildResponse, std::placeholders::_1, DEFAULT_ERROR_CODE,
+ getOCRepresentationFromResource) }
{
}
- RequestHandler::RequestHandler(const OCEntityHandlerResult& result, int errorCode) :
- m_holder{ std::bind(doBuildResponse, std::placeholders::_1, result, errorCode,
+ RequestHandler::RequestHandler(int errorCode) :
+ m_holder{ std::bind(doBuildResponse, std::placeholders::_1, errorCode,
getOCRepresentationFromResource) }
{
}
- RequestHandler::RequestHandler(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode) :
- m_holder{ std::bind(doBuildResponse, std::placeholders::_1, result, errorCode,
+ RequestHandler::RequestHandler(const RCSResourceAttributes& attrs, int errorCode) :
+ m_holder{ std::bind(doBuildResponse, std::placeholders::_1, errorCode,
wrapGetOCRepresentation(attrs)) }
{
}
- RequestHandler::RequestHandler(RCSResourceAttributes&& attrs,
- const OCEntityHandlerResult& result, int errorCode) :
- m_holder{ std::bind(doBuildResponse, std::placeholders::_1, result, errorCode,
+ RequestHandler::RequestHandler(RCSResourceAttributes&& attrs, int errorCode) :
+ m_holder{ std::bind(doBuildResponse, std::placeholders::_1, errorCode,
wrapGetOCRepresentation(std::move(attrs))) }
{
}
{
}
- SetRequestHandler::SetRequestHandler(const OCEntityHandlerResult& result, int errorCode) :
- RequestHandler{ result, errorCode }
+ SetRequestHandler::SetRequestHandler(int errorCode) :
+ RequestHandler{ errorCode }
{
}
- SetRequestHandler::SetRequestHandler(const RCSResourceAttributes& attrs,
- const OCEntityHandlerResult& result, int errorCode) :
- RequestHandler{ attrs, result, errorCode }
+ SetRequestHandler::SetRequestHandler(const RCSResourceAttributes& attrs, int errorCode) :
+ RequestHandler{ attrs, errorCode }
{
}
- SetRequestHandler::SetRequestHandler(RCSResourceAttributes&& attrs,
- const OCEntityHandlerResult& result, int errorCode) :
- RequestHandler{ std::move(attrs), result, errorCode }
+ SetRequestHandler::SetRequestHandler(RCSResourceAttributes&& attrs, int errorCode) :
+ RequestHandler{ std::move(attrs), errorCode }
{
}
ASSERT_EQ(arr31, server->getAttribute<vector<vector<vector<int>>>>(KEY));
}
+
class AutoNotifyTest: public ResourceObjectTest
{
protected:
TEST_F(ResourceObjectHandlingRequestTest, SendResponseWithRCSResponseResults)
{
constexpr int errorCode{ 1999 };
- constexpr OCEntityHandlerResult result{ OC_EH_SLOW };
server->setGetRequestHandler(
[](const RCSRequest&, RCSResourceAttributes&) -> RCSGetResponse
{
- return RCSGetResponse::create(result, errorCode);
+ return RCSGetResponse::create(errorCode);
}
);
mocks.ExpectCallFunc(OCPlatform::sendResponse).Match(
[](const shared_ptr<OCResourceResponse> response)
{
- return response->getErrorCode() == errorCode &&
- response->getResponseResult() == result;
+ return response->getErrorCode() == errorCode;
}
).Return(OC_STACK_OK);
ASSERT_EQ(OC_EH_OK, handler(createRequest()));
}
-TEST_F(ResourceObjectHandlingRequestTest, SendSetResponseWithCustomAttrsAndResults)
+TEST_F(ResourceObjectHandlingRequestTest, SendSetResponseWithCustomAttrs)
{
constexpr int errorCode{ 1999 };
- constexpr OCEntityHandlerResult result{ OC_EH_SLOW };
constexpr char value[]{ "value" };
server->setSetRequestHandler(
{
RCSResourceAttributes attrs;
attrs[KEY] = value;
- return RCSSetResponse::create(attrs, result, errorCode);
+ return RCSSetResponse::create(attrs, errorCode);
}
);
[](const shared_ptr<OCResourceResponse> response)
{
return value == response->getResourceRepresentation()[KEY].getValue<std::string>()
- && response->getErrorCode() == errorCode
- && response->getResponseResult() == result;
+ && response->getErrorCode() == errorCode;
}
).Return(OC_STACK_OK);
static constexpr char KEY[] = "key";
-void EXPECT_RESPONSE(shared_ptr< OCResourceResponse > ocResponse,
- const OCEntityHandlerResult& result, int errorCode, const RCSResourceAttributes& attrs)
+void EXPECT_RESPONSE(shared_ptr< OCResourceResponse > ocResponse, int errorCode,
+ const RCSResourceAttributes& attrs)
{
- EXPECT_EQ(ocResponse->getResponseResult(), result);
EXPECT_EQ(ocResponse->getErrorCode(), errorCode);
EXPECT_EQ(ResourceAttributesConverter::fromOCRepresentation(
ocResponse->getResourceRepresentation()), attrs);
TEST_F(RCSResponseTest, GetDefaultActionHasEmptyAttrs)
{
EXPECT_RESPONSE(buildResponse(RCSGetResponse::defaultAction()),
- RequestHandler::DEFAULT_RESULT, RequestHandler::DEFAULT_ERROR_CODE,
- RCSResourceAttributes());
+ RequestHandler::DEFAULT_ERROR_CODE, RCSResourceAttributes());
}
TEST_F(RCSResponseTest, GetResponseHasResultsPassedCodes)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
- EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(result, errorCode)),
- result, errorCode, RCSResourceAttributes());
+ EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(errorCode)),
+ errorCode, RCSResourceAttributes());
}
TEST_F(RCSResponseTest, GetResponseHasAttrsAndResultsPassedCodes)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
RCSResourceAttributes attrs;
attrs[KEY] = 100;
- EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(attrs, result, errorCode)),
- result, errorCode, attrs);
+ EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(attrs, errorCode)), errorCode, attrs);
}
TEST_F(RCSResponseTest, GetResponseCanMoveAttrs)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
RCSResourceAttributes attrs;
attrsClone[KEY] = 100;
EXPECT_RESPONSE(
- buildResponse(RCSGetResponse::create(std::move(attrs), result, errorCode)),
- result, errorCode, attrsClone);
+ buildResponse(RCSGetResponse::create(std::move(attrs), errorCode)),
+ errorCode, attrsClone);
EXPECT_TRUE(attrs.empty());
}
TEST_F(RCSResponseTest, SetDefaultActionHasEmptyAttrs)
{
EXPECT_RESPONSE(buildResponse(RCSSetResponse::defaultAction()),
- RequestHandler::DEFAULT_RESULT, RequestHandler::DEFAULT_ERROR_CODE,
- RCSResourceAttributes());
+ RequestHandler::DEFAULT_ERROR_CODE, RCSResourceAttributes());
}
TEST_F(RCSResponseTest, SetResponseHasResultsPassedCodes)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(result, errorCode)),
- result, errorCode, RCSResourceAttributes());
+ EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(errorCode)),
+ errorCode, RCSResourceAttributes());
}
TEST_F(RCSResponseTest, SetResponseHasAttrsAndResultsPassedCodes)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
RCSResourceAttributes attrs;
attrs[KEY] = 100;
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(attrs, result, errorCode)),
- result, errorCode, attrs);
+ EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(attrs, errorCode)),
+ errorCode, attrs);
}
TEST_F(RCSResponseTest, SetResponseCanMoveAttrs)
{
- constexpr OCEntityHandlerResult result{ OC_EH_ERROR };
constexpr int errorCode{ -10 };
RCSResourceAttributes attrs;
RCSResourceAttributes attrsClone;
attrsClone[KEY] = 100;
- EXPECT_RESPONSE(
- buildResponse(RCSSetResponse::create(std::move(attrs), result, errorCode)),
- result, errorCode, attrsClone);
+ EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(std::move(attrs), errorCode)),
+ errorCode, attrsClone);
EXPECT_TRUE(attrs.empty());
}
TEST_F(RequestHandlerTest, ResponseHasSameValuesPassedToHandlerConstructor)
{
- RequestHandler handler{ OC_EH_ERROR, -1000 };
+ RequestHandler handler{ -1000 };
auto response = handler.buildResponse(*server);
- ASSERT_EQ(OC_EH_ERROR, response->getResponseResult());
ASSERT_EQ(-1000, response->getErrorCode());
}
CreateResource();
WaitUntilDiscovered();
+
+ ASSERT_NE(object, nullptr);
}
void TearDown()
void WaitUntilDiscovered()
{
- while (checkObject())
+ for (int i=0; i<10 && checkObject(); ++i)
{
const std::string uri = "/oic/res";
const std::string type = "Resource.Hosting";