Skip to content

Architecture cleanup: header relocation, naming, docs, and formatting#182

Merged
sgerbino merged 1 commit intocppalliance:developfrom
sgerbino:pr/architecture-cleanup
Feb 27, 2026
Merged

Architecture cleanup: header relocation, naming, docs, and formatting#182
sgerbino merged 1 commit intocppalliance:developfrom
sgerbino:pr/architecture-cleanup

Conversation

@sgerbino
Copy link
Collaborator

@sgerbino sgerbino commented Feb 27, 2026

Enforce layer boundaries by relocating platform-dependent headers out of the type-erased detail/ scope. Standardize naming across the native layer, fix stale documentation, and apply project-wide formatting.

Header relocation:

  • Move endpoint_convert.hpp and make_err.hpp from detail/ to native/detail/ (both include platform headers, consumed only by native backends)
  • Rename io_buffer_param.hpp to buffer_param.hpp and move from io/ to detail/ (concrete value type, not an abstract base)
  • Remove buffer_param from the umbrella header (not user-facing)

Naming and API consistency:

  • Rename impl_type/get_impl() to implementation_type/get() in all native headers to match the convention used at the abstract and concrete layers
  • Rename io_buffer_param.cpp test to buffer_param.cpp to match the renamed header
  • Pass std::stop_token and tls_context by const reference where only read (removes 8 unnecessary-value-param suppressions)

Code quality:

  • Remove unused includes detected via clangd/clang-tidy
  • Fix clang-tidy diagnostics: suppress bugprone-unused-return-value on tls_context setup calls, fix widening conversions, add reserve() before emplace_back loops, add std::move for pass-by-value tls_context
  • Convert inline NOLINT to NOLINTNEXTLINE where the trailing comment caused clang-format to split lines
  • Fix stale "Defined in sockets.cpp" comments in op headers to reference actual service headers after header/source merges
  • Merge duplicate block comments in kqueue_socket_service.hpp and posix_signal_service.hpp
  • Move includes from posix_resolver.hpp to posix_resolver_service.hpp where they are used

Design documentation:

  • Add "Implementation leaf nodes" subsection to the native layer section covering inheritance chains, leaf node table, common structural patterns, IOCP two-class split, and timer special case
  • Fix native layer code example to match actual implementation (template, implementation_type/get() naming, backend_type trait aliases)
  • Add native_resolver to types table, fix backend tag and implementation header paths, update platform source layout

Formatting:

  • Tune .clang-format: BinPackArguments false, AllowAllArgumentsOnNextLine false, AllowAllParametersOfDeclarationOnNextLine false, AlignConsecutiveAssignments false
  • Apply clang-format project-wide

Summary by CodeRabbit

Release Notes

  • Breaking Changes

    • Renamed public type io_buffer_param to buffer_param across I/O stream APIs.
    • Updated include path for buffer parameter definitions.
  • Enhancements

    • Improved move semantics for cancellation operations with destructor and move constructor support.
    • TLS stream constructors now accept context parameters by const reference for better efficiency.
  • Documentation

    • Updated API documentation and usage guidelines for buffer handling.

Enforce layer boundaries by relocating platform-dependent headers
out of the type-erased detail/ scope. Standardize naming across
the native layer, fix stale documentation, and apply project-wide
formatting.

Header relocation:
- Move endpoint_convert.hpp and make_err.hpp from detail/ to
  native/detail/ (both include platform headers, consumed only
  by native backends)
- Rename io_buffer_param.hpp to buffer_param.hpp and move from
  io/ to detail/ (concrete value type, not an abstract base)
- Remove buffer_param from the umbrella header (not user-facing)

Naming and API consistency:
- Rename impl_type/get_impl() to implementation_type/get() in
  all native headers to match the convention used at the abstract
  and concrete layers
- Rename io_buffer_param.cpp test to buffer_param.cpp to match
  the renamed header
- Pass std::stop_token and tls_context by const reference where
  only read (removes 8 unnecessary-value-param suppressions)

Code quality:
- Remove unused includes detected via clangd/clang-tidy
- Fix clang-tidy diagnostics: suppress bugprone-unused-return-value
  on tls_context setup calls, fix widening conversions, add
  reserve() before emplace_back loops, add std::move for
  pass-by-value tls_context
- Convert inline NOLINT to NOLINTNEXTLINE where the trailing
  comment caused clang-format to split lines
- Fix stale "Defined in sockets.cpp" comments in op headers to
  reference actual service headers after header/source merges
- Merge duplicate block comments in kqueue_socket_service.hpp
  and posix_signal_service.hpp
- Move includes from posix_resolver.hpp to
  posix_resolver_service.hpp where they are used

Design documentation:
- Add "Implementation leaf nodes" subsection to the native layer
  section covering inheritance chains, leaf node table, common
  structural patterns, IOCP two-class split, and timer special
  case
- Fix native layer code example to match actual implementation
  (template<auto Backend>, implementation_type/get() naming,
  backend_type trait aliases)
- Add native_resolver to types table, fix backend tag and
  implementation header paths, update platform source layout

Formatting:
- Tune .clang-format: BinPackArguments false,
  AllowAllArgumentsOnNextLine false,
  AllowAllParametersOfDeclarationOnNextLine false,
  AlignConsecutiveAssignments false
- Apply clang-format project-wide
@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

📝 Walkthrough

Walkthrough

This PR systematically renames the public type io_buffer_param to buffer_param across the library, relocates platform-specific headers to the native/detail/ namespace, updates function signatures to use const reference semantics for std::stop_token and tls_context parameters, adds lifecycle methods (~cancel_at_awaitable() and move constructor) to cancel_at_awaitable, and applies extensive formatting normalizations throughout.

Changes

Cohort / File(s) Summary
Type Rename: io_buffer_param → buffer_param
include/boost/corosio/detail/buffer_param.hpp, include/boost/corosio/io/io_stream.hpp, include/boost/corosio/io/io_read_stream.hpp, include/boost/corosio/io/io_write_stream.hpp, include/boost/corosio/native/detail/epoll/epoll_socket.hpp, include/boost/corosio/native/detail/epoll/epoll_socket_service.hpp, include/boost/corosio/native/detail/iocp/win_socket.hpp, include/boost/corosio/native/detail/iocp/win_acceptor_service.hpp, include/boost/corosio/native/detail/kqueue/kqueue_socket.hpp, include/boost/corosio/native/detail/kqueue/kqueue_socket_service.hpp, include/boost/corosio/native/detail/select/select_socket.hpp, include/boost/corosio/native/detail/select/select_socket_service.hpp, include/boost/corosio/tcp_socket.hpp
Rename public type io_buffer_param to buffer_param across all I/O stream implementations and backend socket services; update include paths from io_buffer_param.hpp to detail/buffer_param.hpp; update method signatures to use new type name.
Header Path Migration: detail/ → native/detail/
include/boost/corosio/native/detail/make_err.hpp, include/boost/corosio/native/detail/epoll/epoll_op.hpp, include/boost/corosio/native/detail/epoll/epoll_scheduler.hpp, include/boost/corosio/native/detail/epoll/epoll_acceptor_service.hpp, include/boost/corosio/native/detail/iocp/win_overlapped_op.hpp, include/boost/corosio/native/detail/iocp/win_scheduler.hpp, include/boost/corosio/native/detail/iocp/win_resolver.hpp, include/boost/corosio/native/detail/iocp/win_wsa_init.hpp, include/boost/corosio/native/detail/kqueue/kqueue_acceptor_service.hpp, include/boost/corosio/native/detail/kqueue/kqueue_scheduler.hpp, include/boost/corosio/native/detail/posix/posix_resolver.hpp, include/boost/corosio/native/detail/select/select_op.hpp, include/boost/corosio/native/detail/select/select_scheduler.hpp, include/boost/corosio/native/detail/select/select_acceptor_service.hpp
Relocate helper header includes (make_err.hpp, endpoint_convert.hpp) from generic boost/corosio/detail/ to platform-specific boost/corosio/native/detail/ namespace; update include guard macros accordingly.
Stop Token Signature Updates
include/boost/corosio/native/detail/epoll/epoll_op.hpp, include/boost/corosio/native/detail/posix/posix_resolver.hpp, include/boost/corosio/native/detail/posix/posix_resolver_service.hpp, include/boost/corosio/native/detail/select/select_op.hpp
Change start(...) member function overloads to accept std::stop_token const& instead of by-value std::stop_token for improved efficiency and const-correctness.
TLS Stream Constructor Updates
include/boost/corosio/openssl_stream.hpp, include/boost/corosio/wolfssl_stream.hpp
Update public constructor signatures to accept tls_context const& instead of by-value tls_context; improves performance by avoiding unnecessary copies and clarifies intent that context is not consumed.
Cancel Awaitable Lifecycle
include/boost/corosio/detail/cancel_at_awaitable.hpp, include/boost/corosio/native/native_cancel.hpp
Add destructor ~cancel_at_awaitable() and move constructor cancel_at_awaitable(cancel_at_awaitable&&) noexcept(...) to manage resource lifecycle; update cancel_at(...) overload to pass additional template argument to internal awaitable construction.
Formatting & Whitespace Normalization
include/boost/corosio/cancel.hpp, include/boost/corosio/detail/acceptor_service.hpp, include/boost/corosio/detail/platform.hpp, include/boost/corosio/detail/socket_service.hpp, include/boost/corosio/detail/timeout_coro.hpp, include/boost/corosio/detail/timer_service.hpp, include/boost/corosio/native/detail/endpoint_convert.hpp, include/boost/corosio/native/detail/epoll/epoll_acceptor.hpp, include/boost/corosio/native/detail/iocp/win_acceptor.hpp, include/boost/corosio/native/detail/iocp/win_sockets.hpp, include/boost/corosio/native/detail/kqueue/kqueue_acceptor.hpp, include/boost/corosio/native/detail/select/select_acceptor.hpp, include/boost/corosio/native/native_socket_option.hpp, include/boost/corosio/native/native_tcp.hpp, include/boost/corosio/socket_option.hpp, include/boost/corosio/tcp.hpp, include/boost/corosio/tcp_acceptor.hpp, src/corosio/src/socket_option.cpp, src/corosio/src/tcp.cpp, src/corosio/src/tcp_acceptor.cpp, src/corosio/src/tcp_socket.cpp
Reformat function declarations, parameter lists, and inline definitions; adjust line breaks, spacing, and brace placement without altering logic or behavior.
Include Cleanup
include/boost/corosio.hpp, include/boost/corosio/ipv6_address.hpp, src/corosio/src/endpoint.cpp
Remove unused header includes: io_buffer_param.hpp, <cstdint>, <algorithm>, and <memory> from various files.
Documentation & Rules
.cursor/rules/portable-headers.mdc
Expand scope of portable-headers enforcement rule to clarify the distinction between type-erased public headers and native/direct API headers; reorganize categories and update examples to reflect new classification.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Poem

🐰 Whiskers twitched with glee so bright,
As buffer names were renamed right—
From param old to param new,
Headers hopped to native view.
Token references took their place,
Formatting lines at faster pace!

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main objectives of the PR: header relocation, type naming changes, documentation updates, and comprehensive formatting improvements across the codebase.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://182.corosio.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-02-27 19:36:06 UTC

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
include/boost/corosio/socket_option.hpp (1)

394-400: ⚠️ Potential issue | 🟡 Minor

Keep resize parameter docs and signature aligned.

Line 400 declares void resize(std::size_t) but the doc block still documents @param s. Please either name the parameter or remove the @param entry to avoid stale API docs.

Suggested fix
-    void resize(std::size_t) noexcept {}
+    void resize(std::size_t s) noexcept
+    {
+        (void)s;
+    }

As per coding guidelines: "@param documentation for each parameter" in public-header documentation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@include/boost/corosio/socket_option.hpp` around lines 394 - 400, The docblock
for the public function resize documents a parameter named "s" but the
declaration is void resize(std::size_t) with an unnamed parameter; update the
declaration to name the parameter (e.g., void resize(std::size_t s) noexcept {})
so the `@param` s doc is accurate (or alternatively remove the `@param` entry if you
prefer no parameter name); locate the resize function in
include/boost/corosio/socket_option.hpp and make the signature and docs
consistent.
🧹 Nitpick comments (2)
include/boost/corosio/wolfssl_stream.hpp (1)

81-84: Clarify ctx lifetime/copy semantics in constructor docs.

Now that ctx is a const&, please explicitly state whether construction copies the TLS configuration immediately or stores/reuses any part of ctx, so caller lifetime expectations are unambiguous.

As per coding guidelines "@param documentation for each parameter — Including ownership/lifetime semantics".

Also applies to: 99-102

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@include/boost/corosio/wolfssl_stream.hpp` around lines 81 - 84, Update the
constructor documentation for wolfssl_stream (and the overloaded constructor at
the other occurrence) to explicitly state the lifetime and ownership semantics
of the parameter ctx: indicate whether the constructor copies the TLS
configuration from the provided const& ctx into internal storage (and thus the
caller may destroy the original after construction) or whether it merely stores
a reference/pointer to ctx (requiring the caller to keep ctx alive for the
wolfssl_stream lifetime); reference the constructor signature
(wolfssl_stream::wolfssl_stream(..., const TLSContext& ctx) or similar) so
readers can find the exact function and ensure the `@param` ctx lines (both
locations) mention whether a deep/shallow copy is made and who owns/retains the
configuration.
include/boost/corosio/native/detail/epoll/epoll_op.hpp (1)

225-234: Standardize std::stop_token parameter passing convention across backends.

Inconsistency exists in how start() methods accept the stop token. POSIX backends (epoll_op.hpp, select_op.hpp, posix_resolver.hpp) use std::stop_token const&, while non-POSIX backends (win_overlapped_op.hpp, kqueue_op.hpp) pass by value. Consider standardizing to const reference across all backends for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@include/boost/corosio/native/detail/epoll/epoll_op.hpp` around lines 225 -
234, The start(std::stop_token const& token, epoll_socket* impl) signature
should be used consistently across backends: change the analogous start(...)
signatures in non-POSIX backends (e.g., win_overlapped_op::start and
kqueue_op::start) from taking std::stop_token by value to taking std::stop_token
const&; update any corresponding forward declarations and call sites to accept
and forward a const& (no semantic changes otherwise), and ensure stop_cb
emplacement logic (canceller{this}) remains compatible with the const&
parameter.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@include/boost/corosio/socket_option.hpp`:
- Around line 394-400: The docblock for the public function resize documents a
parameter named "s" but the declaration is void resize(std::size_t) with an
unnamed parameter; update the declaration to name the parameter (e.g., void
resize(std::size_t s) noexcept {}) so the `@param` s doc is accurate (or
alternatively remove the `@param` entry if you prefer no parameter name); locate
the resize function in include/boost/corosio/socket_option.hpp and make the
signature and docs consistent.

---

Nitpick comments:
In `@include/boost/corosio/native/detail/epoll/epoll_op.hpp`:
- Around line 225-234: The start(std::stop_token const& token, epoll_socket*
impl) signature should be used consistently across backends: change the
analogous start(...) signatures in non-POSIX backends (e.g.,
win_overlapped_op::start and kqueue_op::start) from taking std::stop_token by
value to taking std::stop_token const&; update any corresponding forward
declarations and call sites to accept and forward a const& (no semantic changes
otherwise), and ensure stop_cb emplacement logic (canceller{this}) remains
compatible with the const& parameter.

In `@include/boost/corosio/wolfssl_stream.hpp`:
- Around line 81-84: Update the constructor documentation for wolfssl_stream
(and the overloaded constructor at the other occurrence) to explicitly state the
lifetime and ownership semantics of the parameter ctx: indicate whether the
constructor copies the TLS configuration from the provided const& ctx into
internal storage (and thus the caller may destroy the original after
construction) or whether it merely stores a reference/pointer to ctx (requiring
the caller to keep ctx alive for the wolfssl_stream lifetime); reference the
constructor signature (wolfssl_stream::wolfssl_stream(..., const TLSContext&
ctx) or similar) so readers can find the exact function and ensure the `@param`
ctx lines (both locations) mention whether a deep/shallow copy is made and who
owns/retains the configuration.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5a1b2a and 4cc7925.

⛔ Files ignored due to path filters (23)
  • doc/design/physical-structure.md is excluded by !**/doc/**
  • doc/modules/ROOT/pages/4.guide/4n.buffers.adoc is excluded by !**/doc/**
  • include/boost/corosio/test/mocket.hpp is excluded by !**/test/**
  • test/unit/acceptor.cpp is excluded by !**/test/**
  • test/unit/cancel.cpp is excluded by !**/test/**
  • test/unit/endpoint.cpp is excluded by !**/test/**
  • test/unit/io_buffer_param.cpp is excluded by !**/test/**
  • test/unit/io_context.cpp is excluded by !**/test/**
  • test/unit/ipv4_address.cpp is excluded by !**/test/**
  • test/unit/ipv6_address.cpp is excluded by !**/test/**
  • test/unit/native/iocp/iocp_shutdown.cpp is excluded by !**/test/**
  • test/unit/native/native_cancel.cpp is excluded by !**/test/**
  • test/unit/openssl_stream.cpp is excluded by !**/test/**
  • test/unit/resolver.cpp is excluded by !**/test/**
  • test/unit/socket.cpp is excluded by !**/test/**
  • test/unit/socket_stress.cpp is excluded by !**/test/**
  • test/unit/stream_tests.hpp is excluded by !**/test/**
  • test/unit/tcp_server.cpp is excluded by !**/test/**
  • test/unit/test_utils.hpp is excluded by !**/test/**
  • test/unit/timer.cpp is excluded by !**/test/**
  • test/unit/tls_stream_stress.cpp is excluded by !**/test/**
  • test/unit/tls_stream_tests.hpp is excluded by !**/test/**
  • test/unit/wolfssl_stream.cpp is excluded by !**/test/**
📒 Files selected for processing (58)
  • .cursor/rules/portable-headers.mdc
  • include/boost/corosio.hpp
  • include/boost/corosio/cancel.hpp
  • include/boost/corosio/detail/acceptor_service.hpp
  • include/boost/corosio/detail/buffer_param.hpp
  • include/boost/corosio/detail/cancel_at_awaitable.hpp
  • include/boost/corosio/detail/platform.hpp
  • include/boost/corosio/detail/socket_service.hpp
  • include/boost/corosio/detail/thread_local_ptr.hpp
  • include/boost/corosio/detail/timeout_coro.hpp
  • include/boost/corosio/detail/timer_service.hpp
  • include/boost/corosio/io/io_read_stream.hpp
  • include/boost/corosio/io/io_stream.hpp
  • include/boost/corosio/io/io_write_stream.hpp
  • include/boost/corosio/ipv6_address.hpp
  • include/boost/corosio/native/detail/endpoint_convert.hpp
  • include/boost/corosio/native/detail/epoll/epoll_acceptor.hpp
  • include/boost/corosio/native/detail/epoll/epoll_acceptor_service.hpp
  • include/boost/corosio/native/detail/epoll/epoll_op.hpp
  • include/boost/corosio/native/detail/epoll/epoll_scheduler.hpp
  • include/boost/corosio/native/detail/epoll/epoll_socket.hpp
  • include/boost/corosio/native/detail/epoll/epoll_socket_service.hpp
  • include/boost/corosio/native/detail/iocp/win_acceptor.hpp
  • include/boost/corosio/native/detail/iocp/win_acceptor_service.hpp
  • include/boost/corosio/native/detail/iocp/win_overlapped_op.hpp
  • include/boost/corosio/native/detail/iocp/win_resolver.hpp
  • include/boost/corosio/native/detail/iocp/win_scheduler.hpp
  • include/boost/corosio/native/detail/iocp/win_socket.hpp
  • include/boost/corosio/native/detail/iocp/win_sockets.hpp
  • include/boost/corosio/native/detail/iocp/win_wsa_init.hpp
  • include/boost/corosio/native/detail/kqueue/kqueue_acceptor.hpp
  • include/boost/corosio/native/detail/kqueue/kqueue_acceptor_service.hpp
  • include/boost/corosio/native/detail/kqueue/kqueue_scheduler.hpp
  • include/boost/corosio/native/detail/kqueue/kqueue_socket.hpp
  • include/boost/corosio/native/detail/kqueue/kqueue_socket_service.hpp
  • include/boost/corosio/native/detail/make_err.hpp
  • include/boost/corosio/native/detail/posix/posix_resolver.hpp
  • include/boost/corosio/native/detail/posix/posix_resolver_service.hpp
  • include/boost/corosio/native/detail/select/select_acceptor.hpp
  • include/boost/corosio/native/detail/select/select_acceptor_service.hpp
  • include/boost/corosio/native/detail/select/select_op.hpp
  • include/boost/corosio/native/detail/select/select_scheduler.hpp
  • include/boost/corosio/native/detail/select/select_socket.hpp
  • include/boost/corosio/native/detail/select/select_socket_service.hpp
  • include/boost/corosio/native/native_cancel.hpp
  • include/boost/corosio/native/native_socket_option.hpp
  • include/boost/corosio/native/native_tcp.hpp
  • include/boost/corosio/openssl_stream.hpp
  • include/boost/corosio/socket_option.hpp
  • include/boost/corosio/tcp.hpp
  • include/boost/corosio/tcp_acceptor.hpp
  • include/boost/corosio/tcp_socket.hpp
  • include/boost/corosio/wolfssl_stream.hpp
  • src/corosio/src/endpoint.cpp
  • src/corosio/src/socket_option.cpp
  • src/corosio/src/tcp.cpp
  • src/corosio/src/tcp_acceptor.cpp
  • src/corosio/src/tcp_socket.cpp
💤 Files with no reviewable changes (3)
  • include/boost/corosio/ipv6_address.hpp
  • src/corosio/src/endpoint.cpp
  • include/boost/corosio.hpp

@codecov
Copy link

codecov bot commented Feb 27, 2026

Codecov Report

❌ Patch coverage is 88.57143% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.38%. Comparing base (21875c3) to head (4cc7925).
⚠️ Report is 2 commits behind head on develop.

Files with missing lines Patch % Lines
...orosio/native/detail/iocp/win_acceptor_service.hpp 65.21% 2 Missing and 6 partials ⚠️
src/corosio/src/socket_option.cpp 83.67% 8 Missing ⚠️
include/boost/corosio/tcp_socket.hpp 42.85% 4 Missing ⚠️
include/boost/corosio/socket_option.hpp 94.44% 2 Missing ⚠️
include/boost/corosio/tcp_acceptor.hpp 33.33% 2 Missing ⚠️
...rosio/native/detail/epoll/epoll_socket_service.hpp 75.00% 1 Missing ⚠️
...boost/corosio/native/detail/iocp/win_scheduler.hpp 66.66% 0 Missing and 1 partial ⚠️
...sio/native/detail/select/select_socket_service.hpp 75.00% 1 Missing ⚠️
include/boost/corosio/test/mocket.hpp 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #182      +/-   ##
===========================================
+ Coverage    76.22%   76.38%   +0.16%     
===========================================
  Files           98      101       +3     
  Lines        10467    10572     +105     
  Branches      2383     2385       +2     
===========================================
+ Hits          7978     8075      +97     
- Misses        1762     1774      +12     
+ Partials       727      723       -4     
Flag Coverage Δ
linux 83.34% <92.52%> (+0.15%) ⬆️
windows 69.80% <86.17%> (+0.31%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
include/boost/corosio/cancel.hpp 100.00% <100.00%> (+25.00%) ⬆️
include/boost/corosio/detail/acceptor_service.hpp 100.00% <ø> (ø)
include/boost/corosio/detail/buffer_param.hpp 100.00% <100.00%> (ø)
...clude/boost/corosio/detail/cancel_at_awaitable.hpp 100.00% <100.00%> (+15.90%) ⬆️
include/boost/corosio/detail/socket_service.hpp 100.00% <ø> (ø)
include/boost/corosio/detail/thread_local_ptr.hpp 100.00% <ø> (ø)
include/boost/corosio/detail/timeout_coro.hpp 100.00% <100.00%> (+8.00%) ⬆️
include/boost/corosio/detail/timer_service.hpp 93.05% <100.00%> (ø)
include/boost/corosio/io/io_read_stream.hpp 95.65% <ø> (ø)
include/boost/corosio/io/io_stream.hpp 81.81% <ø> (ø)
... and 42 more

... and 3 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 21875c3...4cc7925. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cppalliance-bot
Copy link

GCOVR code coverage report https://182.corosio.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://182.corosio.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://182.corosio.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-02-27 19:42:51 UTC

@sgerbino sgerbino merged commit 534f963 into cppalliance:develop Feb 27, 2026
23 checks passed
@sgerbino sgerbino deleted the pr/architecture-cleanup branch February 27, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants