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

Commit06b8b94

Browse files
committed
Added resolver delegate.
1 parent055e513 commit06b8b94

File tree

5 files changed

+93
-38
lines changed

5 files changed

+93
-38
lines changed

‎http/src/network/http/v2/client/connection/async_resolver.hpp‎renamed to ‎http/src/network/http/v2/client/connection/async_resolver_delegate.hpp‎

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
// (See accompanying file LICENSE_1_0.txt or copy at
44
// http://www.boost.org/LICENSE_1_0.txt)
55

6-
#ifndef__NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_INC__
7-
#define__NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_INC__
6+
#ifndef__NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_DELEGATE_INC__
7+
#define__NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_DELEGATE_INC__
88

9+
#include"network/http/v2/client/connection/resolver_delegate.hpp"
910
#include<boost/asio/io_service.hpp>
1011
#include<boost/asio/strand.hpp>
1112
#include<boost/asio/ip/tcp.hpp>
@@ -20,54 +21,32 @@
2021
namespacenetwork {
2122
namespacehttp {
2223
namespacev2 {
24+
classasync_resolver_delegate :publicresolver_delegate {
2325

24-
classresolver_error : std::runtime_error {
26+
async_resolver_delegate(const async_resolver_delegate &) =delete;
27+
async_resolver_delegate &operator = (const async_resolver_delegate &) =delete;
2528

2629
public:
2730

28-
resolver_error(const std::string &msg)
29-
: std::runtime_error(msg) {
30-
31-
}
32-
33-
virtual~resolver_error()noexcept {
34-
35-
}
36-
37-
};
38-
39-
classasync_resolver {
40-
41-
async_resolver(const async_resolver &) =delete;
42-
async_resolver &operator = (const async_resolver &) =delete;
43-
44-
public:
45-
46-
typedef boost::asio::ip::tcp::resolver resolver;
47-
typedef resolver::iterator resolver_iterator;
48-
4931
/**
5032
* \brief Constructor.
5133
*/
52-
async_resolver(boost::asio::io_service &service,bool cache_resolved)
34+
async_resolver_delegate(boost::asio::io_service &service,bool cache_resolved)
5335
: resolver_(service)
5436
, cache_resolved_(cache_resolved_)
5537
, resolver_strand_(new boost::asio::io_service::strand(service)) {
5638

5739
}
5840

59-
/**
60-
* \brief Destructor.
61-
*/
62-
~async_resolver()noexcept {
41+
virtual~async_resolver_delegate()noexcept {
6342

6443
}
6544

45+
6646
/**
6747
* \brief Resolves a host asynchronously.
6848
*/
69-
template<classOnResolved>
70-
voidresolve(const std::string &host, std::uint16_t port, OnResolved on_resolved) {
49+
virtualvoidresolve(const std::string &host, std::uint16_t port, on_resolved_fn on_resolved) {
7150
if (cache_resolved_) {
7251
endpoint_cache::iterator it = endpoint_cache_.find(boost::to_lower_copy(host));
7352
if (it != endpoint_cache_.end()) {
@@ -112,10 +91,8 @@ namespace network {
11291
endpoint_cache endpoint_cache_;
11392

11493
};
115-
11694
}// namespace v2
11795
}// namespace http
11896
}// namespace network
11997

120-
121-
#endif// __NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_INC__
98+
#endif// __NETWORK_HTTP_V2_CLIENT_CONNECTION_ASYNC_RESOLVER_DELEGATE_INC__
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// Copyright (C) 2013 by Glyn Matthews
2+
// Distributed under the Boost Software License, Version 1.0.
3+
// (See accompanying file LICENSE_1_0.txt or copy at
4+
// http://www.boost.org/LICENSE_1_0.txt)
5+
6+
#ifndef __NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_INC__
7+
#define__NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_INC__
8+
9+
#include<cstdint>
10+
#include<string>
11+
#include<functional>
12+
#include<boost/asio/ip/tcp.hpp>
13+
#include<boost/range/iterator_range.hpp>
14+
15+
namespacenetwork {
16+
namespacehttp {
17+
namespacev2 {
18+
classresolver_delegate {
19+
20+
resolver_delegate(const resolver_delegate &) =delete;
21+
resolver_delegate &operator = (const resolver_delegate &) =delete;
22+
23+
public:
24+
25+
typedef boost::asio::ip::tcp::resolver resolver;
26+
typedef resolver::iterator resolver_iterator;
27+
typedef std::function<void (const boost::system::error_code &,
28+
boost::iterator_range<resolver_iterator>)> on_resolved_fn;
29+
30+
resolver_delegate() =default;
31+
32+
virtual~resolver_delegate()noexcept { }
33+
34+
virtualvoidresolve(const std::string &host, std::uint16_t port, on_resolved_fn on_resolved) = 0;
35+
36+
virtualvoidclear_resolved_cache() = 0;
37+
38+
private:
39+
40+
};
41+
}// namespace v2
42+
}// namespace http
43+
}// namespace network
44+
45+
#endif// __NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_INC__
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright (C) 2013 by Glyn Matthews
2+
// Distributed under the Boost Software License, Version 1.0.
3+
// (See accompanying file LICENSE_1_0.txt or copy at
4+
// http://www.boost.org/LICENSE_1_0.txt)
5+
6+
#ifndef __NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_FACTORY_INC__
7+
#define__NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_FACTORY_INC__
8+
9+
#include"network/http/v2/client/resolver_delegate.hpp"
10+
11+
namespacenetwork {
12+
namespacehttp {
13+
namespacev2 {
14+
classresolver_delegate_factory {
15+
16+
resolver_delegate_factory(const resolver_delegate_factory &) =delete;
17+
resolver_delegate_factory &operator = (const resolver_delegate_factory &) =delete;
18+
19+
public:
20+
21+
resolver_delegate_factory() =default;
22+
23+
virtual~resolver_delegate_factory()noexcept { }
24+
25+
virtual std::shared_ptr<resolver_delegate>create(boost::asio::io_service &io_service,
26+
bool cache_resolved) = 0;
27+
28+
};
29+
}// namespace v2
30+
}// namespace http
31+
}// namespace network
32+
33+
#endif// __NETWORK_HTTP_V2_CLIENT_CONNECTION_RESOLVER_DELEGATE_FACTORY_INC__

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
#include<gtest/gtest.h>
77
#include<boost/asio.hpp>
8-
#include<network/http/v2/client/connection/async_resolver.hpp>
8+
#include"network/http/v2/client/connection/async_resolver_delegate.hpp"
99
#include<iostream>
1010

1111
namespacehttp= network::http::v2;
@@ -14,10 +14,10 @@ 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_resolverresolver(io_service,false);
17+
http::async_resolver_delegateresolver(io_service,false);
1818
resolver.resolve("127.0.0.1",80,
1919
[] (const boost::system::error_code &ec,
20-
const boost::iterator_range<http::async_resolver::resolver_iterator> &endpoints) {
20+
const boost::iterator_range<http::async_resolver_delegate::resolver_iterator> &endpoints) {
2121
for (auto endpoint : endpoints) {
2222
std::cout <<"Endpoint" << std::endl;
2323
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ TEST(request_test, stream) {
4545
ASSERT_EQ("GET / HTTP/1.1\r\n"
4646
"Host: http://www.example.com\r\n"
4747
"Connection: close\r\n"
48-
"User-Agent: request_test\r\n", oss.str());
48+
"User-Agent: request_test\r\n\r\n", oss.str());
4949
}
5050

5151
TEST(request_test, stream_2) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp