Skip to content

Commit 465a732

Browse files
committed
Migrate from Boost.Buffers to Boost.Capy
- Replace all buffers:: types with capy:: equivalents - Rewrite wrap_executor to create asio_dispatcher (satisfies dispatcher concept) - Update CMakeLists.txt to remove Boost::buffers dependency - Update test and example files for new API
1 parent 6d83768 commit 465a732

26 files changed

Lines changed: 252 additions & 797 deletions

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ temp
1515

1616
# Visual Studio Code
1717
/.vscode
18+
19+
/.temp

CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ set(BOOST_SRC_DIR ${DEFAULT_BOOST_SRC_DIR} CACHE STRING "Boost source dir to use
5757
set(BOOST_BEAST2_DEPENDENCIES
5858
Boost::asio
5959
Boost::assert
60-
Boost::buffers
6160
Boost::capy
6261
Boost::config
6362
Boost::core
@@ -124,7 +123,7 @@ if (BOOST_BEAST2_IS_ROOT)
124123
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${BOOST_SRC_DIR}/tools/cmake/include")
125124
else ()
126125
# From Boost Package
127-
find_package(Boost REQUIRED COMPONENTS buffers capy http json program_options scope system url)
126+
find_package(Boost REQUIRED COMPONENTS capy http json program_options scope system url)
128127
foreach (BOOST_INCLUDE_LIBRARY ${BOOST_INCLUDE_LIBRARIES})
129128
if (NOT TARGET Boost::${BOOST_INCLUDE_LIBRARY})
130129
add_library(Boost::${BOOST_INCLUDE_LIBRARY} ALIAS Boost::headers)

example/client/burl/any_stream.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
#include <boost/asio/coroutine.hpp>
1717
#include <boost/asio/immediate.hpp>
1818
#include <boost/asio/steady_timer.hpp>
19-
#include <boost/buffers/slice.hpp>
19+
#include <boost/capy/buffers/slice.hpp>
2020
#include <boost/core/span.hpp>
2121
#include <boost/http/parser.hpp>
2222
#include <boost/http/serializer.hpp>
2323

2424
namespace asio = boost::asio;
25-
namespace buffers = boost::buffers;
25+
namespace capy = boost::capy;
2626
namespace http = boost::http;
2727
using error_code = boost::system::error_code;
2828

@@ -56,7 +56,7 @@ class any_stream
5656

5757
virtual void
5858
async_write_some(
59-
const buffers::slice_of<boost::span<buffers::const_buffer const>>& buffers,
59+
const capy::slice_of<boost::span<capy::const_buffer const>>& buffers,
6060
asio::any_completion_handler<void(error_code, std::size_t)>
6161
handler) override
6262
{
@@ -65,7 +65,7 @@ class any_stream
6565

6666
virtual void
6767
async_read_some(
68-
const buffers::slice_of<boost::span<buffers::mutable_buffer const>>& buffers,
68+
const capy::slice_of<boost::span<capy::mutable_buffer const>>& buffers,
6969
asio::any_completion_handler<void(error_code, std::size_t)>
7070
handler) override
7171
{
@@ -153,7 +153,7 @@ class any_stream
153153
}
154154
BOOST_ASIO_CORO_YIELD
155155
stream_->async_write_some(
156-
buffers::prefix(buffers, wr_remain_),
156+
capy::prefix(buffers, wr_remain_),
157157
std::move(self));
158158
wr_remain_ -= n;
159159
self.complete(ec, n);
@@ -191,7 +191,7 @@ class any_stream
191191
}
192192
BOOST_ASIO_CORO_YIELD
193193
stream_->async_read_some(
194-
buffers::prefix(buffers, rd_remain_),
194+
capy::prefix(buffers, rd_remain_),
195195
std::move(self));
196196
rd_remain_ -= n;
197197
self.complete(ec, n);
@@ -226,12 +226,12 @@ class any_stream
226226

227227
virtual void
228228
async_write_some(
229-
const buffers::slice_of<boost::span<buffers::const_buffer const>>&,
229+
const capy::slice_of<boost::span<capy::const_buffer const>>&,
230230
asio::any_completion_handler<void(error_code, std::size_t)>) = 0;
231231

232232
virtual void
233233
async_read_some(
234-
const buffers::slice_of<boost::span<buffers::mutable_buffer const>>&,
234+
const capy::slice_of<boost::span<capy::mutable_buffer const>>&,
235235
asio::any_completion_handler<void(error_code, std::size_t)>) = 0;
236236

237237
virtual void async_shutdown(

example/client/burl/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <boost/asio/ip/tcp.hpp>
2929
#include <boost/asio/read.hpp>
3030
#include <boost/asio/signal_set.hpp>
31-
#include <boost/buffers.hpp>
31+
#include <boost/capy/buffers.hpp>
3232
#include <boost/beast2.hpp>
3333
#include <boost/http.hpp>
3434
#include <boost/capy/brotli/decode.hpp>
@@ -41,6 +41,7 @@
4141
#include <cstdlib>
4242

4343
namespace beast2 = boost::beast2;
44+
namespace capy = boost::capy;
4445
namespace scope = boost::scope;
4546
using system_error = boost::system::system_error;
4647

@@ -323,7 +324,7 @@ class sink : public http::sink
323324
}
324325

325326
results
326-
on_write(buffers::const_buffer cb, bool) override
327+
on_write(capy::const_buffer cb, bool) override
327328
{
328329
auto chunk =
329330
core::string_view(static_cast<const char*>(cb.data()), cb.size());

example/client/burl/message.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <filesystem>
1818
#include <iostream>
1919

20+
namespace capy = boost::capy;
2021
namespace fs = std::filesystem;
2122
using system_error = boost::system::system_error;
2223

@@ -44,7 +45,7 @@ string_body::content_length() const noexcept
4445
return body_.size();
4546
}
4647

47-
buffers::const_buffer
48+
capy::const_buffer
4849
string_body::body() const noexcept
4950
{
5051
return { body_.data(), body_.size() };
@@ -90,7 +91,7 @@ file_body::body() const
9091
// -----------------------------------------------------------------------------
9192

9293
boost::http::source::results
93-
stdin_body::source::on_read(buffers::mutable_buffer mb)
94+
stdin_body::source::on_read(capy::mutable_buffer mb)
9495
{
9596
std::cin.read(static_cast<char*>(mb.data()), mb.size());
9697

example/client/burl/message.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class string_body
3737
std::size_t
3838
content_length() const noexcept;
3939

40-
buffers::const_buffer
40+
capy::const_buffer
4141
body() const noexcept;
4242
};
4343

@@ -68,7 +68,7 @@ class stdin_body
6868
{
6969
public:
7070
results
71-
on_read(buffers::mutable_buffer mb) override;
71+
on_read(capy::mutable_buffer mb) override;
7272
};
7373

7474
http::method

example/client/burl/multipart_form.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
#include "multipart_form.hpp"
1111

12-
#include <boost/buffers/copy.hpp>
13-
#include <boost/buffers/slice.hpp>
12+
#include <boost/capy/buffers/copy.hpp>
13+
#include <boost/capy/buffers/slice.hpp>
1414
#include <boost/capy/file.hpp>
1515
#include <boost/system/system_error.hpp>
1616

@@ -148,18 +148,18 @@ multipart_form::source::source(const multipart_form* form) noexcept
148148
}
149149

150150
multipart_form::source::results
151-
multipart_form::source::on_read(buffers::mutable_buffer mb)
151+
multipart_form::source::on_read(capy::mutable_buffer mb)
152152
{
153153
auto rs = results{};
154154

155155
auto copy = [&](core::string_view sv)
156156
{
157-
buffers::const_buffer source(sv.data(), sv.size());
158-
buffers::remove_prefix(mb, static_cast<std::size_t>(skip_));
157+
capy::const_buffer source(sv.data(), sv.size());
158+
capy::remove_prefix(mb, static_cast<std::size_t>(skip_));
159159

160-
auto copied = buffers::copy(mb, source);
160+
auto copied = capy::copy(mb, source);
161161

162-
buffers::remove_prefix(mb, copied);
162+
capy::remove_prefix(mb, copied);
163163
rs.bytes += copied;
164164
skip_ += copied;
165165

@@ -189,7 +189,7 @@ multipart_form::source::on_read(buffers::mutable_buffer mb)
189189
if(rs.ec)
190190
return false;
191191

192-
buffers::remove_prefix(mb, read);
192+
capy::remove_prefix(mb, read);
193193
rs.bytes += read;
194194
skip_ += read;
195195

example/client/burl/multipart_form.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#ifndef BURL_MULTIPART_FORM_HPP
1111
#define BURL_MULTIPART_FORM_HPP
1212

13-
#include <boost/buffers/buffer.hpp>
13+
#include <boost/capy/buffers.hpp>
1414
#include <boost/core/detail/string_view.hpp>
1515
#include <boost/http/method.hpp>
1616
#include <boost/http/source.hpp>
@@ -20,7 +20,7 @@
2020
#include <array>
2121
#include <vector>
2222

23-
namespace buffers = boost::buffers;
23+
namespace capy = boost::capy;
2424
namespace http = boost::http;
2525
using error_code = boost::system::error_code;
2626

@@ -79,7 +79,7 @@ class multipart_form::source : public http::source
7979
explicit source(const multipart_form* form) noexcept;
8080

8181
results
82-
on_read(buffers::mutable_buffer mb) override;
82+
on_read(capy::mutable_buffer mb) override;
8383
};
8484

8585
#endif

example/client/get/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ class session
410410
struct stdout_sink : http::sink
411411
{
412412
results
413-
on_write(buffers::const_buffer cb, bool) override
413+
on_write(capy::const_buffer cb, bool) override
414414
{
415415
std::cout.write(
416416
static_cast<const char*>(cb.data()), cb.size());

example/client/jsonrpc/jsonrpc/any_stream.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define JSONRPC_ANY_STREAM_HPP
1212

1313
#include <boost/asio/any_completion_handler.hpp>
14-
#include <boost/buffers/buffer.hpp>
14+
#include <boost/capy/buffers.hpp>
1515
#include <boost/core/span.hpp>
1616
#include <boost/url/url_view.hpp>
1717

@@ -33,12 +33,12 @@ class any_stream
3333

3434
virtual void
3535
async_write_some(
36-
const boost::span<boost::buffers::const_buffer const>&,
36+
const boost::span<boost::capy::const_buffer const>&,
3737
boost::asio::any_completion_handler<void(boost::system::error_code, std::size_t)>) = 0;
3838

3939
virtual void
4040
async_read_some(
41-
const boost::span<boost::buffers::mutable_buffer const>&,
41+
const boost::span<boost::capy::mutable_buffer const>&,
4242
boost::asio::any_completion_handler<void(boost::system::error_code, std::size_t)>) = 0;
4343

4444
virtual void

0 commit comments

Comments
 (0)