blob: a767af7a5d4567d2cee343a7acda72fee4cef26c [file] [log] [blame]
Ed Tanous40e9b922024-09-10 13:50:16 -07001// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright OpenBMC Authors
Ed Tanouse3cb5a32018-08-08 14:16:49 -07003#pragma once
4
zhanghch058d1b46d2021-04-01 11:18:24 +08005#include "http_response.hpp"
6
Iwona Klimaszewskac0a1c8a2019-07-12 18:26:38 +02007#include <functional>
8
Ed Tanouse3cb5a32018-08-08 14:16:49 -07009namespace bmcweb
10{
11
12/**
13 * AsyncResp
14 * Gathers data needed for response processing after async calls are done
15 */
Iwona Klimaszewskac0a1c8a2019-07-12 18:26:38 +020016
Ed Tanouse3cb5a32018-08-08 14:16:49 -070017class AsyncResp
18{
19 public:
Nan Zhou72374eb2022-01-27 17:06:51 -080020 AsyncResp() = default;
Patrick Williams89492a12023-05-10 07:51:34 -050021 explicit AsyncResp(crow::Response&& resIn) : res(std::move(resIn)) {}
Iwona Klimaszewskac0a1c8a2019-07-12 18:26:38 +020022
Krzysztof Grobelnydab06042021-04-02 13:28:14 +000023 AsyncResp(const AsyncResp&) = delete;
24 AsyncResp(AsyncResp&&) = delete;
Ed Tanousecd6a3a2022-01-07 09:18:40 -080025 AsyncResp& operator=(const AsyncResp&) = delete;
26 AsyncResp& operator=(AsyncResp&&) = delete;
Krzysztof Grobelnydab06042021-04-02 13:28:14 +000027
Ed Tanouse3cb5a32018-08-08 14:16:49 -070028 ~AsyncResp()
29 {
30 res.end();
31 }
32
Nan Zhou72374eb2022-01-27 17:06:51 -080033 crow::Response res;
Ed Tanouse3cb5a32018-08-08 14:16:49 -070034};
35
Iwona Klimaszewskac0a1c8a2019-07-12 18:26:38 +020036} // namespace bmcweb