@@ -22,15 +22,15 @@ HttpAsyncStreamReader::HttpAsyncStreamReader(HttpAsyncStreamPtr stream) : stream
2222 TRPC_ASSERT (stream_ && " HttpAsyncStreamPtr can't be nullptr" );
2323}
2424
25- Future<http::HttpHeader> HttpAsyncStreamReader::ReadHeader (int timeout) { return stream_->AsyncReadHeader (timeout); }
25+ Future<http::HttpHeader> HttpAsyncStreamReader::ReadHeader (uint32_t timeout) { return stream_->AsyncReadHeader (timeout); }
2626
27- Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadChunk (int timeout) { return stream_->AsyncReadChunk (timeout); }
27+ Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadChunk (uint32_t timeout) { return stream_->AsyncReadChunk (timeout); }
2828
29- Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadAtMost (uint64_t len, int timeout) {
29+ Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadAtMost (uint64_t len, uint32_t timeout) {
3030 return stream_->AsyncReadAtMost (len, timeout);
3131}
3232
33- Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadExactly (uint64_t len, int timeout) {
33+ Future<NoncontiguousBuffer> HttpAsyncStreamReader::ReadExactly (uint64_t len, uint32_t timeout) {
3434 return stream_->AsyncReadExactly (len, timeout);
3535}
3636
@@ -87,15 +87,15 @@ HttpAsyncStreamReaderWriter::HttpAsyncStreamReaderWriter(HttpAsyncStreamPtr stre
8787 TRPC_ASSERT (stream_ && " HttpAsyncStreamPtr can't be nullptr" );
8888}
8989
90- Future<http::HttpHeader> HttpAsyncStreamReaderWriter::ReadHeader (int timeout) { return reader_->ReadHeader (timeout); }
90+ Future<http::HttpHeader> HttpAsyncStreamReaderWriter::ReadHeader (uint32_t timeout) { return reader_->ReadHeader (timeout); }
9191
92- Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadChunk (int timeout) { return reader_->ReadChunk (timeout); }
92+ Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadChunk (uint32_t timeout) { return reader_->ReadChunk (timeout); }
9393
94- Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadAtMost (uint64_t len, int timeout) {
94+ Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadAtMost (uint64_t len, uint32_t timeout) {
9595 return reader_->ReadAtMost (len, timeout);
9696}
9797
98- Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadExactly (uint64_t len, int timeout) {
98+ Future<NoncontiguousBuffer> HttpAsyncStreamReaderWriter::ReadExactly (uint64_t len, uint32_t timeout) {
9999 return reader_->ReadExactly (len, timeout);
100100}
101101
@@ -177,34 +177,34 @@ http::HttpRequestPtr ConstructHttpRequest(HttpRequestLine&& start_line, trpc::ht
177177}
178178
179179template <typename T>
180- Future<http::HttpRequestPtr> ReadFullRequestImpl (T rw, int timeout) {
180+ Future<http::HttpRequestPtr> ReadFullRequestImpl (T rw, uint32_t timeout) {
181181 HttpRequestLine start_line = rw->GetRequestLine (); // reads request line
182182 http::PathParameters param = rw->GetParameters ();
183183 // Reads header first, then read the body.
184- return rw->ReadHeader (timeout).Then (
185- [rw, start_line = std::move (start_line), param = std::move (param)](trpc::http::HttpHeader&& header) mutable {
186- // Read full request body if it has any.
187- bool has_data = false ;
188- uint64_t read_bytes = std::numeric_limits<uint64_t >::max ();
189- if (header.Get (http::kHeaderTransferEncoding ) == http::kTransferEncodingChunked ) {
190- has_data = true ;
191- }
192- if (const std::string& len = header.Get (http::kHeaderContentLength ); !len.empty ()) {
193- has_data = true ;
194- // The |len| here is valid(a failure will occur if it has bad length).
195- read_bytes = trpc::TryParse<uint64_t >(len).value ();
196- }
197- if (has_data) {
198- return rw->ReadExactly (read_bytes)
199- .Then ([start_line = std::move (start_line), param = std::move (param),
200- header = std::move (header)](NoncontiguousBuffer&& data) mutable {
201- return MakeReadyFuture<trpc::http::HttpRequestPtr>(
202- ConstructHttpRequest (std::move (start_line), std::move (param), std::move (header), std::move (data)));
203- });
204- }
205- return MakeReadyFuture<trpc::http::HttpRequestPtr>(
206- ConstructHttpRequest (std::move (start_line), std::move (param), std::move (header), NoncontiguousBuffer{}));
207- });
184+ return rw->ReadHeader (timeout).Then ([rw, timeout, start_line = std::move (start_line),
185+ param = std::move (param)](trpc::http::HttpHeader&& header) mutable {
186+ // Read full request body if it has any.
187+ bool has_data = false ;
188+ uint64_t read_bytes = std::numeric_limits<uint64_t >::max ();
189+ if (header.Get (http::kHeaderTransferEncoding ) == http::kTransferEncodingChunked ) {
190+ has_data = true ;
191+ }
192+ if (const std::string& len = header.Get (http::kHeaderContentLength ); !len.empty ()) {
193+ has_data = true ;
194+ // The |len| here is valid(a failure will occur if it has bad length).
195+ read_bytes = trpc::TryParse<uint64_t >(len).value ();
196+ }
197+ if (has_data) {
198+ return rw->ReadExactly (read_bytes, timeout )
199+ .Then ([start_line = std::move (start_line), param = std::move (param),
200+ header = std::move (header)](NoncontiguousBuffer&& data) mutable {
201+ return MakeReadyFuture<trpc::http::HttpRequestPtr>(
202+ ConstructHttpRequest (std::move (start_line), std::move (param), std::move (header), std::move (data)));
203+ });
204+ }
205+ return MakeReadyFuture<trpc::http::HttpRequestPtr>(
206+ ConstructHttpRequest (std::move (start_line), std::move (param), std::move (header), NoncontiguousBuffer{}));
207+ });
208208}
209209
210210} // namespace
@@ -217,11 +217,11 @@ Future<> WriteFullResponse(HttpServerAsyncStreamWriterPtr rw, http::HttpResponse
217217 return WriteFullResponseImpl (rw, std::move (rsp));
218218}
219219
220- Future<http::HttpRequestPtr> ReadFullRequest (HttpServerAsyncStreamReaderWriterPtr rw, int timeout) {
220+ Future<http::HttpRequestPtr> ReadFullRequest (HttpServerAsyncStreamReaderWriterPtr rw, uint32_t timeout) {
221221 return ReadFullRequestImpl (rw, timeout);
222222}
223223
224- Future<http::HttpRequestPtr> ReadFullRequest (HttpServerAsyncStreamReaderPtr rw, int timeout) {
224+ Future<http::HttpRequestPtr> ReadFullRequest (HttpServerAsyncStreamReaderPtr rw, uint32_t timeout) {
225225 return ReadFullRequestImpl (rw, timeout);
226226}
227227
@@ -283,9 +283,10 @@ trpc::http::HttpResponsePtr ConstructHttpResponse(HttpStatusLine&& staus_line, h
283283}
284284
285285template <typename T>
286- Future<trpc::http::HttpResponsePtr> ReadFullResponseImpl (T rw, int timeout) {
287- return rw->ReadStatusLine ().Then ([rw](HttpStatusLine&& start_line) {
288- return rw->ReadHeader ().Then ([rw, start_line = std::move (start_line)](trpc::http::HttpHeader&& header) mutable {
286+ Future<trpc::http::HttpResponsePtr> ReadFullResponseImpl (T rw, uint32_t timeout) {
287+ return rw->ReadStatusLine (timeout).Then ([rw, timeout](HttpStatusLine&& start_line) {
288+ return rw->ReadHeader (timeout).Then ([rw, timeout,
289+ start_line = std::move (start_line)](trpc::http::HttpHeader&& header) mutable {
289290 // Reads content if it has.
290291 bool has_data = false ;
291292 uint64_t read_bytes = std::numeric_limits<uint64_t >::max ();
@@ -298,7 +299,7 @@ Future<trpc::http::HttpResponsePtr> ReadFullResponseImpl(T rw, int timeout) {
298299 read_bytes = trpc::TryParse<uint64_t >(len).value ();
299300 }
300301 if (has_data) {
301- return rw->ReadExactly (read_bytes)
302+ return rw->ReadExactly (read_bytes, timeout )
302303 .Then ([start_line = std::move (start_line), header = std::move (header)](NoncontiguousBuffer&& data) mutable {
303304 return MakeReadyFuture<trpc::http::HttpResponsePtr>(
304305 ConstructHttpResponse (std::move (start_line), std::move (header), std::move (data)));
@@ -311,10 +312,10 @@ Future<trpc::http::HttpResponsePtr> ReadFullResponseImpl(T rw, int timeout) {
311312}
312313} // namespace
313314
314- Future<trpc::http::HttpResponsePtr> ReadFullResponse (HttpClientAsyncStreamReaderWriterPtr rw, int timeout) {
315+ Future<trpc::http::HttpResponsePtr> ReadFullResponse (HttpClientAsyncStreamReaderWriterPtr rw, uint32_t timeout) {
315316 return ReadFullResponseImpl (rw, timeout);
316317}
317- Future<trpc::http::HttpResponsePtr> ReadFullResponse (HttpClientAsyncStreamReaderPtr rw, int timeout) {
318+ Future<trpc::http::HttpResponsePtr> ReadFullResponse (HttpClientAsyncStreamReaderPtr rw, uint32_t timeout) {
318319 return ReadFullResponseImpl (rw, timeout);
319320}
320321
0 commit comments