llmx-rtaco 0.0.1
RTNL-only netlink control-plane library for Linux (C++23).
Loading...
Searching...
No Matches
llmx::rtaco::AddressTask< Derived, Result > Class Template Reference

Base task type for address-related netlink operations. More...

#include <nl_address_task.hxx>

Inheritance diagram for llmx::rtaco::AddressTask< Derived, Result >:
llmx::rtaco::RequestTask< Derived, Result >

Public Member Functions

auto request_payload () const -> std::span< const uint8_t >
 Get the serialized request payload for sending.
Public Member Functions inherited from llmx::rtaco::RequestTask< Derived, Result >
 RequestTask (SocketGuard &socket_guard, uint16_t ifindex, uint32_t sequence) noexcept
 Construct a RequestTask.
virtual ~RequestTask ()=default
 Virtual destructor.
auto async_run () -> boost::asio::awaitable< std::expected< Result, std::error_code > >
 Run the request asynchronously and return the result.

Protected Member Functions

void build_request (uint16_t msg_flags=NLM_F_REQUEST|NLM_F_DUMP, uint8_t address_family=RTN_UNSPEC, uint8_t prefixlen=0, uint8_t ifa_flags=0, uint8_t scope=RT_SCOPE_UNIVERSE)
Protected Member Functions inherited from llmx::rtaco::RequestTask< Derived, Result >
auto socket () noexcept -> Socket &
auto sequence () const noexcept -> uint32_t
auto ifindex () const noexcept -> uint16_t

Protected Attributes

AddressRequest request_ {}

Detailed Description

template<typename Derived, typename Result>
class llmx::rtaco::AddressTask< Derived, Result >

Base task type for address-related netlink operations.

AddressTask stores an address request (ifaddrmsg) and exposes request_payload() for sending the serialized request. Derived classes implement the concrete request preparation and response processing.

Member Function Documentation

◆ build_request()

template<typename Derived, typename Result>
void llmx::rtaco::AddressTask< Derived, Result >::build_request ( uint16_t msg_flags = NLM_F_REQUEST | NLM_F_DUMP,
uint8_t address_family = RTN_UNSPEC,
uint8_t prefixlen = 0,
uint8_t ifa_flags = 0,
uint8_t scope = RT_SCOPE_UNIVERSE )
inlineprotected

◆ request_payload()

template<typename Derived, typename Result>
auto llmx::rtaco::AddressTask< Derived, Result >::request_payload ( ) const -> std::span< const uint8_t >
inline

Get the serialized request payload for sending.

Returns
A span referencing the request payload bytes suitable for send.

Member Data Documentation

◆ request_

template<typename Derived, typename Result>
AddressRequest llmx::rtaco::AddressTask< Derived, Result >::request_ {}
protected

The documentation for this class was generated from the following file: