summaryrefslogtreecommitdiff
path: root/http/http_response.hpp
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2021-11-16 20:37:47 +0300
committerGunnar Mills <gmills@us.ibm.com>2021-11-16 20:41:01 +0300
commit9062d478d4dc89598e215e1538ba8fbb8db2cf10 (patch)
treec989da259e677ed3b471a53a6bf271868a190880 /http/http_response.hpp
parentccd584f2da1e687ea66d47824a791162458e737b (diff)
downloadbmcweb-9062d478d4dc89598e215e1538ba8fbb8db2cf10.tar.xz
Revert "Change the completionhandler to accept Res"
This reverts commit 91995f3272010875e1559397e98ca93354066a0e. Seeing bumps fail. https://gerrit.openbmc-project.xyz/c/openbmc/openbmc/+/48864 Please fix, test, and resubmit. Change-Id: Id539fe66d5a093caf8f22a393f7af7b58ead5247 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'http/http_response.hpp')
-rw-r--r--http/http_response.hpp44
1 files changed, 13 insertions, 31 deletions
diff --git a/http/http_response.hpp b/http/http_response.hpp
index c99b2c378b..a983d4ae51 100644
--- a/http/http_response.hpp
+++ b/http/http_response.hpp
@@ -39,8 +39,6 @@ struct Response
Response() : stringResponse(response_type{})
{}
- Response(Response&& res) = delete;
-
Response& operator=(const Response& r) = delete;
Response& operator=(Response&& r) noexcept
@@ -115,53 +113,37 @@ struct Response
{
if (completed)
{
- BMCWEB_LOG_ERROR << this << " Response was ended twice";
+ BMCWEB_LOG_ERROR << "Response was ended twice";
return;
}
completed = true;
- BMCWEB_LOG_DEBUG << this << " calling completion handler";
+ BMCWEB_LOG_DEBUG << "calling completion handler";
if (completeRequestHandler)
{
- BMCWEB_LOG_DEBUG << this << " completion handler was valid";
- completeRequestHandler(*this);
+ BMCWEB_LOG_DEBUG << "completion handler was valid";
+ completeRequestHandler();
}
}
- bool isAlive()
- {
- return isAliveHelper && isAliveHelper();
- }
-
- void setCompleteRequestHandler(std::function<void(Response&)>&& handler)
+ void end(std::string_view bodyPart)
{
- BMCWEB_LOG_DEBUG << this << " setting completion handler";
- completeRequestHandler = std::move(handler);
+ write(bodyPart);
+ end();
}
- std::function<void(Response&)> releaseCompleteRequestHandler()
- {
- BMCWEB_LOG_DEBUG << this << " releasing completion handler"
- << static_cast<bool>(completeRequestHandler);
- std::function<void(Response&)> ret = completeRequestHandler;
- completeRequestHandler = nullptr;
- return ret;
- }
-
- void setIsAliveHelper(std::function<bool()>&& handler)
+ bool isAlive()
{
- isAliveHelper = std::move(handler);
+ return isAliveHelper && isAliveHelper();
}
- std::function<bool()> releaseIsAliveHelper()
+ void setCompleteRequestHandler(std::function<void()> newHandler)
{
- std::function<bool()> ret = std::move(isAliveHelper);
- isAliveHelper = nullptr;
- return ret;
+ completeRequestHandler = std::move(newHandler);
}
private:
- bool completed = false;
- std::function<void(Response&)> completeRequestHandler;
+ bool completed{};
+ std::function<void()> completeRequestHandler;
std::function<bool()> isAliveHelper;
// In case of a JSON object, set the Content-Type header