asio: Export session_impl* from stream rather than delegating everything
This commit is contained in:
parent
9efb62f40b
commit
ca1f43dfca
|
@ -25,6 +25,7 @@
|
||||||
#include "asio_client_request_impl.h"
|
#include "asio_client_request_impl.h"
|
||||||
|
|
||||||
#include "asio_client_stream.h"
|
#include "asio_client_stream.h"
|
||||||
|
#include "asio_client_session_impl.h"
|
||||||
#include "template.h"
|
#include "template.h"
|
||||||
|
|
||||||
namespace nghttp2 {
|
namespace nghttp2 {
|
||||||
|
@ -33,7 +34,10 @@ namespace client {
|
||||||
|
|
||||||
request_impl::request_impl() : strm_(nullptr) {}
|
request_impl::request_impl() : strm_(nullptr) {}
|
||||||
|
|
||||||
void request_impl::cancel(uint32_t error_code) { strm_->cancel(error_code); }
|
void request_impl::cancel(uint32_t error_code) {
|
||||||
|
auto sess = strm_->session();
|
||||||
|
sess->cancel(*strm_, error_code);
|
||||||
|
}
|
||||||
|
|
||||||
void request_impl::on_response(response_cb cb) { response_cb_ = std::move(cb); }
|
void request_impl::on_response(response_cb cb) { response_cb_ = std::move(cb); }
|
||||||
|
|
||||||
|
@ -72,7 +76,10 @@ read_cb::result_type request_impl::call_on_read(uint8_t *buf, std::size_t len,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void request_impl::resume() { strm_->resume(); }
|
void request_impl::resume() {
|
||||||
|
auto sess = strm_->session();
|
||||||
|
sess->resume(*strm_);
|
||||||
|
}
|
||||||
|
|
||||||
void request_impl::header(header_map h) { header_ = std::move(h); }
|
void request_impl::header(header_map h) { header_ = std::move(h); }
|
||||||
|
|
||||||
|
|
|
@ -36,10 +36,6 @@ stream::stream(session_impl *sess) : sess_(sess), stream_id_(0) {
|
||||||
request_.impl().stream(this);
|
request_.impl().stream(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void stream::cancel(uint32_t error_code) { sess_->cancel(*this, error_code); }
|
|
||||||
|
|
||||||
void stream::resume() { sess_->resume(*this); }
|
|
||||||
|
|
||||||
void stream::stream_id(int32_t stream_id) { stream_id_ = stream_id; }
|
void stream::stream_id(int32_t stream_id) { stream_id_ = stream_id; }
|
||||||
|
|
||||||
int32_t stream::stream_id() const { return stream_id_; }
|
int32_t stream::stream_id() const { return stream_id_; }
|
||||||
|
@ -48,6 +44,8 @@ request &stream::request() { return request_; }
|
||||||
|
|
||||||
response &stream::response() { return response_; }
|
response &stream::response() { return response_; }
|
||||||
|
|
||||||
|
session_impl *stream::session() const { return sess_; }
|
||||||
|
|
||||||
bool stream::expect_final_response() const {
|
bool stream::expect_final_response() const {
|
||||||
return response_.status_code() / 100 == 1;
|
return response_.status_code() / 100 == 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,15 +44,14 @@ public:
|
||||||
stream(const stream &) = delete;
|
stream(const stream &) = delete;
|
||||||
stream &operator=(const stream &) = delete;
|
stream &operator=(const stream &) = delete;
|
||||||
|
|
||||||
void cancel(uint32_t error_code);
|
|
||||||
void resume();
|
|
||||||
|
|
||||||
void stream_id(int32_t stream_id);
|
void stream_id(int32_t stream_id);
|
||||||
int32_t stream_id() const;
|
int32_t stream_id() const;
|
||||||
|
|
||||||
request &request();
|
request &request();
|
||||||
response &response();
|
response &response();
|
||||||
|
|
||||||
|
session_impl *session() const;
|
||||||
|
|
||||||
bool expect_final_response() const;
|
bool expect_final_response() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue