1
0
mirror of synced 2025-04-21 22:25:55 +03:00

Code refactoring

This commit is contained in:
yhirose 2021-06-02 00:20:17 -04:00
parent 77a77f6d2d
commit 0104614656

View File

@ -337,6 +337,8 @@ using ContentProvider =
using ContentProviderWithoutLength = using ContentProviderWithoutLength =
std::function<bool(size_t offset, DataSink &sink)>; std::function<bool(size_t offset, DataSink &sink)>;
using ContentProviderResourceReleaser = std::function<void()>;
using ContentReceiverWithProgress = using ContentReceiverWithProgress =
std::function<bool(const char *data, size_t data_length, uint64_t offset, std::function<bool(const char *data, size_t data_length, uint64_t offset,
uint64_t total_length)>; uint64_t total_length)>;
@ -446,15 +448,15 @@ struct Response {
void set_content_provider( void set_content_provider(
size_t length, const char *content_type, ContentProvider provider, size_t length, const char *content_type, ContentProvider provider,
const std::function<void()> &resource_releaser = nullptr); ContentProviderResourceReleaser resource_releaser = nullptr);
void set_content_provider( void set_content_provider(
const char *content_type, ContentProviderWithoutLength provider, const char *content_type, ContentProviderWithoutLength provider,
const std::function<void()> &resource_releaser = nullptr); ContentProviderResourceReleaser resource_releaser = nullptr);
void set_chunked_content_provider( void set_chunked_content_provider(
const char *content_type, ContentProviderWithoutLength provider, const char *content_type, ContentProviderWithoutLength provider,
const std::function<void()> &resource_releaser = nullptr); ContentProviderResourceReleaser resource_releaser = nullptr);
Response() = default; Response() = default;
Response(const Response &) = default; Response(const Response &) = default;
@ -470,7 +472,7 @@ struct Response {
// private members... // private members...
size_t content_length_ = 0; size_t content_length_ = 0;
ContentProvider content_provider_; ContentProvider content_provider_;
std::function<void()> content_provider_resource_releaser_; ContentProviderResourceReleaser content_provider_resource_releaser_;
bool is_chunked_content_provider_ = false; bool is_chunked_content_provider_ = false;
}; };
@ -4030,10 +4032,9 @@ inline void Response::set_content(const std::string &s,
set_content(s.data(), s.size(), content_type); set_content(s.data(), s.size(), content_type);
} }
inline void inline void Response::set_content_provider(
Response::set_content_provider(size_t in_length, const char *content_type, size_t in_length, const char *content_type, ContentProvider provider,
ContentProvider provider, ContentProviderResourceReleaser resource_releaser) {
const std::function<void()> &resource_releaser) {
assert(in_length > 0); assert(in_length > 0);
set_header("Content-Type", content_type); set_header("Content-Type", content_type);
content_length_ = in_length; content_length_ = in_length;
@ -4042,10 +4043,9 @@ Response::set_content_provider(size_t in_length, const char *content_type,
is_chunked_content_provider_ = false; is_chunked_content_provider_ = false;
} }
inline void inline void Response::set_content_provider(
Response::set_content_provider(const char *content_type, const char *content_type, ContentProviderWithoutLength provider,
ContentProviderWithoutLength provider, ContentProviderResourceReleaser resource_releaser) {
const std::function<void()> &resource_releaser) {
set_header("Content-Type", content_type); set_header("Content-Type", content_type);
content_length_ = 0; content_length_ = 0;
content_provider_ = detail::ContentProviderAdapter(std::move(provider)); content_provider_ = detail::ContentProviderAdapter(std::move(provider));
@ -4055,7 +4055,7 @@ Response::set_content_provider(const char *content_type,
inline void Response::set_chunked_content_provider( inline void Response::set_chunked_content_provider(
const char *content_type, ContentProviderWithoutLength provider, const char *content_type, ContentProviderWithoutLength provider,
const std::function<void()> &resource_releaser) { ContentProviderResourceReleaser resource_releaser) {
set_header("Content-Type", content_type); set_header("Content-Type", content_type);
content_length_ = 0; content_length_ = 0;
content_provider_ = detail::ContentProviderAdapter(std::move(provider)); content_provider_ = detail::ContentProviderAdapter(std::move(provider));
@ -7058,7 +7058,8 @@ inline void SSLClient::shutdown_ssl(Socket &socket, bool shutdown_gracefully) {
shutdown_ssl_impl(socket, shutdown_gracefully); shutdown_ssl_impl(socket, shutdown_gracefully);
} }
inline void SSLClient::shutdown_ssl_impl(Socket &socket, bool shutdown_gracefully) { inline void SSLClient::shutdown_ssl_impl(Socket &socket,
bool shutdown_gracefully) {
if (socket.sock == INVALID_SOCKET) { if (socket.sock == INVALID_SOCKET) {
assert(socket.ssl == nullptr); assert(socket.ssl == nullptr);
return; return;