57class StreamError final :
public std::exception
60 const char *what()
const noexcept override
62 return message_.data();
65 StreamErrorCode code()
const
70 StreamError(StreamErrorCode code,
const std::string &message)
71 : message_(message), code_(code)
75 StreamError(StreamErrorCode code, std::string &&message)
76 : message_(std::move(message)), code_(code)
80 StreamError() =
delete;
84 StreamErrorCode code_;
95 virtual void onStreamData(
const char *,
size_t) = 0;
96 virtual void onStreamFinish(std::exception_ptr) = 0;
98 using StreamDataCallback = std::function<void(
const char *,
size_t)>;
99 using StreamFinishCallback = std::function<void(std::exception_ptr)>;
102 static RequestStreamReaderPtr newReader(StreamDataCallback dataCb,
103 StreamFinishCallback finishCb);
106 static RequestStreamReaderPtr newNullReader();
108 using MultipartHeaderCallback = std::function<void(
MultipartHeader header)>;
110 static RequestStreamReaderPtr newMultipartReader(
111 const HttpRequestPtr &req,
112 MultipartHeaderCallback headerCb,
113 StreamDataCallback dataCb,
114 StreamFinishCallback finishCb);