Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd9174e6

Browse files
committed
Updated method type.
1 parent0610d08 commitd9174e6

File tree

5 files changed

+70
-27
lines changed

5 files changed

+70
-27
lines changed

‎http/src/http/v2/client/client.cpp‎

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
// http://www.boost.org/LICENSE_1_0.txt)
55

66
#include<network/http/v2/client/client.hpp>
7+
#include<network/http/v2/method.hpp>
8+
#include<network/http/v2/client/connection/async_resolver_delegate.hpp>
79

810
namespacenetwork {
911
namespacehttp {
@@ -13,31 +15,45 @@ namespace network {
1315

1416
}
1517

16-
std::future<response>client::get(requestreq, request_options options) {
17-
returndo_request("GET", req, options);
18+
std::future<response>client::get(requestrequest_, request_options options) {
19+
returndo_request(method::GET, request_, options);
1820
}
1921

20-
std::future<response>client::post(requestreq, request_options options) {
21-
returndo_request("POST", req, options);
22+
std::future<response>client::post(requestrequest_, request_options options) {
23+
returndo_request(method::POST, request_, options);
2224
}
2325

24-
std::future<response>client::put(requestreq, request_options options) {
25-
returndo_request("PUT", req, options);
26+
std::future<response>client::put(requestrequest_, request_options options) {
27+
returndo_request(method::PUT, request_, options);
2628
}
2729

28-
std::future<response>client::delete_(requestreq, request_options options) {
29-
returndo_request("DELETE", req, options);
30+
std::future<response>client::delete_(requestrequest_, request_options options) {
31+
returndo_request(method::DELETE, request_, options);
3032
}
3133

32-
std::future<response>client::head(requestreq, request_options options) {
33-
returndo_request("HEAD", req, options);
34+
std::future<response>client::head(requestrequest_, request_options options) {
35+
returndo_request(method::HEAD, request_, options);
3436
}
3537

36-
std::future<response>client::options(requestreq, request_options options) {
37-
returndo_request("OPTIONS", req, options);
38+
std::future<response>client::options(requestrequest_, request_options options) {
39+
returndo_request(method::OPTIONS, request_, options);
3840
}
3941

40-
std::future<response>client::do_request(string_type method, request req, request_options options) {
42+
std::future<response>client::do_request(method method_, request request_, request_options options) {
43+
request_.set_method(method_);
44+
45+
boost::asio::io_service io_service;
46+
async_resolver_delegateresolver(io_service,async_resolver_delegate::cache_resolved());
47+
resolver.resolve(request_.host(), request_.port(),
48+
[=] (const boost::system::error_code &ec, boost::iterator_range<async_resolver_delegate::resolver_iterator> resolvers) {
49+
if (ec) {
50+
return;
51+
}
52+
53+
// make TCP connection
54+
});
55+
io_service.run();
56+
4157
return std::future<response>();
4258
}
4359
}// namespace v2

‎http/src/network/http/v2/client/client.hpp‎

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,25 @@ namespace network {
2121

2222
typedef request::string_type string_type;
2323

24-
enumclassmethod { GET, PUT, POST, DELETE, HEAD, OPTIONS, };
25-
2624
explicitclient(client_options options = client_options());
2725
client(clientconst &) =delete;
2826
client(client &&) =delete;
2927

30-
std::future<response>get(requestreq, request_options options = request_options());
28+
std::future<response>get(requestrequest_, request_options options = request_options());
3129

32-
std::future<response>post(requestreq, request_options options = request_options());
30+
std::future<response>post(requestrequest_, request_options options = request_options());
3331

34-
std::future<response>put(requestreq, request_options options = request_options());
32+
std::future<response>put(requestrequest_, request_options options = request_options());
3533

36-
std::future<response>delete_(requestreq, request_options options = request_options());
34+
std::future<response>delete_(requestrequest_, request_options options = request_options());
3735

38-
std::future<response>head(requestreq, request_options options = request_options());
36+
std::future<response>head(requestrequest_, request_options options = request_options());
3937

40-
std::future<response>options(requestreq, request_options options = request_options());
38+
std::future<response>options(requestrequest_, request_options options = request_options());
4139

4240
private:
4341

44-
std::future<response>do_request(string_typemethod, requestreq, request_options options);
42+
std::future<response>do_request(method method_, requestrequest_, request_options options);
4543

4644
client_options options_;
4745

‎http/src/network/http/v2/client/connection/async_resolver_delegate.hpp‎

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,35 @@
2121
namespacenetwork {
2222
namespacehttp {
2323
namespacev2 {
24+
/*!
25+
* \class async_resolver_delegate network::http::v2::async_resolver_delegate <network/http/v2/client/connection/async_resolver_delegate.hpp>
26+
* \brief Resolves and maintains a cache of hosts.
27+
*/
2428
classasync_resolver_delegate :publicresolver_delegate {
2529

2630
async_resolver_delegate(const async_resolver_delegate &) =delete;
2731
async_resolver_delegate &operator = (const async_resolver_delegate &) =delete;
2832

2933
public:
3034

31-
/**
35+
structcache_resolved { };
36+
37+
/*!
3238
* \brief Constructor.
3339
*/
34-
async_resolver_delegate(boost::asio::io_service &service,bool cache_resolved)
40+
explicitasync_resolver_delegate(boost::asio::io_service &service)
3541
: resolver_(service)
36-
, cache_resolved_(cache_resolved_)
42+
, cache_resolved_(false)
43+
, resolver_strand_(new boost::asio::io_service::strand(service)) {
44+
45+
}
46+
47+
/*!
48+
* \brief Constructor.
49+
*/
50+
async_resolver_delegate(boost::asio::io_service &service, cache_resolved)
51+
: resolver_(service)
52+
, cache_resolved_(true)
3753
, resolver_strand_(new boost::asio::io_service::strand(service)) {
3854

3955
}
@@ -42,7 +58,7 @@ namespace network {
4258

4359
}
4460

45-
/**
61+
/*!
4662
* \brief Resolves a host asynchronously.
4763
*/
4864
virtualvoidresolve(const std::string &host, std::uint16_t port, on_resolved_fn on_resolved) {
@@ -74,6 +90,9 @@ namespace network {
7490
}));
7591
}
7692

93+
/*!
94+
* \brief Clears the cache of already resolved endpoints.
95+
*/
7796
voidclear_resolved_cache() {
7897
endpoint_cache_.clear();
7998
}

‎http/src/network/http/v2/client/request.hpp‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ namespace network {
121121
destination_ =std::move(destination);
122122
}
123123

124+
string_typehost()const {
125+
assert(destination_.host());
126+
returnstring_type(std::begin(*destination_.host()),std::end(*destination_.host()));
127+
}
128+
129+
std::uint16_tport()const {
130+
assert(destination_.port());
131+
return *destination_.port<std::uint16_t>();
132+
}
133+
124134
voidset_body(std::shared_ptr<byte_source> byte_source) {
125135
byte_source_ = byte_source;
126136
}

‎http/test/v2/client/async_resolver_test.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ TEST(async_resolver_test, resolve_localhost) {
1414
// server must be running on 127.0.0.1:80
1515

1616
boost::asio::io_service io_service;
17-
http::async_resolver_delegateresolver(io_service,false);
17+
http::async_resolver_delegateresolver(io_service);
1818
resolver.resolve("127.0.0.1",80,
1919
[] (const boost::system::error_code &ec,
2020
const boost::iterator_range<http::async_resolver_delegate::resolver_iterator> &endpoints) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp