31 if (!impl_->request->body.has_value())
33 return impl_->request->body->data();
37 if (!impl_->request->body.has_value())
39 return impl_->request->body->size();
44 if (impl_->request->body.has_value())
45 impl_->request->body->SetFromBuffer(data, size);
47 impl_->request->body.emplace(data, size);
49 impl_->request->body.reset();
57 impl_(
new Impl{MakeJsRef<js::Request>(std::move(
request))}) {}
59 void Request::Finalize() {
60 impl_->request->uris =
uris;
61 impl_->request->method =
method;
62 impl_->request->headers =
headers;
64 (void)impl_->request->ToJsValue();
76 return impl_->response->data.data();
80 return impl_->response->data.size();
84 impl_->response->data.SetFromBuffer(data, size);
88 : timeMs(0), fromCache(
false), impl_(
new Impl{MakeJsRef<js::Response>()}) {}
92 originalUri(response.originalUri),
94 timeMs(response.timeMs),
95 fromCache(response.fromCache),
96 impl_(
new Impl{MakeJsRef<js::Response>(std::move(response))}) {}
98 void Response::Finalize() {
99 impl_->response->uri = uri;
100 impl_->response->originalUri = originalUri;
101 impl_->response->headers =
headers;
102 impl_->response->timeMs = timeMs;
103 impl_->response->fromCache = fromCache;
105 (void)impl_->response->ToJsValue();
110 return impl_->response.get();
116 SchemePlugin::~SchemePlugin() {}
119 SchemePlugin::Client::~Client() {}
122 NetworkFilters::~NetworkFilters() {}
void SetDataCopy(const uint8_t *data, size_t size)
std::unordered_map< std::string, std::string > headers
virtual std::future< optional< Error > > OnRequestFilter(RequestType type, Request *request)
const uint8_t * body() const
RefPtr< js::Response > response
std::vector< std::string > uris
RefPtr< js::Request > request
void SetBodyCopy(const uint8_t *data, size_t size)
Request(const Request &)=delete
const uint8_t * data() const
virtual std::future< optional< Error > > OnResponseFilter(RequestType type, Response *response)