Tracks pending Nostr requests and matches them with responses.
More...
#include <request_tracker.hpp>
|
| | request_tracker (const std::shared_ptr< boost::asio::io_context > &io_context) |
| | Constructs a request tracker.
|
| |
| auto | track (const std::string &event_id, std::function< void(const protocol::ok &)> callback, std::chrono::milliseconds timeout) -> void |
| | Tracks a request with callback-based completion.
|
| |
| auto | has_pending (const std::string &event_id) const -> bool |
| | Checks if an event ID has a pending request.
|
| |
| auto | cancel_all_pending () -> void |
| | Cancels all pending requests.
|
| |
| template<typename ResponseType > |
| auto | resolve (const std::string &event_id, const ResponseType &response) -> void |
| | Resolves a pending request with a response.
|
| |
| template<typename ResponseType = protocol::ok> |
| auto | async_track (std::string event_id, std::chrono::milliseconds timeout) -> boost::asio::awaitable< ResponseType > |
| | Tracks a request with coroutine-based completion.
|
| |
Tracks pending Nostr requests and matches them with responses.
Associates event IDs with callbacks or coroutine awaitables, implementing timeout handling for requests that don't receive responses.
Definition at line 20 of file request_tracker.hpp.
◆ request_tracker()
| radix_relay::nostr::request_tracker::request_tracker |
( |
const std::shared_ptr< boost::asio::io_context > & |
io_context | ) |
|
|
inlineexplicit |
Constructs a request tracker.
- Parameters
-
| io_context | Boost.Asio io_context for timers |
Definition at line 36 of file request_tracker.hpp.
◆ async_track()
template<typename ResponseType = protocol::ok>
| auto radix_relay::nostr::request_tracker::async_track |
( |
std::string |
event_id, |
|
|
std::chrono::milliseconds |
timeout |
|
) |
| -> boost::asio::awaitable<ResponseType>
|
|
inline |
Tracks a request with coroutine-based completion.
- Template Parameters
-
| ResponseType | Type of response to await (ok or eose) |
- Parameters
-
| event_id | Event ID to track |
| timeout | Maximum time to wait for response |
- Returns
- Awaitable that yields the response
- Exceptions
-
| std::runtime_error | on timeout |
Definition at line 106 of file request_tracker.hpp.
◆ cancel_all_pending()
| auto radix_relay::nostr::request_tracker::cancel_all_pending |
( |
| ) |
-> void
|
|
inline |
◆ has_pending()
| auto radix_relay::nostr::request_tracker::has_pending |
( |
const std::string & |
event_id | ) |
const -> bool |
|
inline |
Checks if an event ID has a pending request.
- Parameters
-
| event_id | Event ID to check |
- Returns
- true if pending, false otherwise
Definition at line 68 of file request_tracker.hpp.
◆ resolve()
template<typename ResponseType >
| auto radix_relay::nostr::request_tracker::resolve |
( |
const std::string & |
event_id, |
|
|
const ResponseType & |
response |
|
) |
| -> void
|
|
inline |
Resolves a pending request with a response.
- Template Parameters
-
| ResponseType | Type of response (ok or eose) |
- Parameters
-
| event_id | Event ID to resolve |
| response | Response data |
Definition at line 86 of file request_tracker.hpp.
◆ track()
| auto radix_relay::nostr::request_tracker::track |
( |
const std::string & |
event_id, |
|
|
std::function< void(const protocol::ok &)> |
callback, |
|
|
std::chrono::milliseconds |
timeout |
|
) |
| -> void
|
|
inline |
Tracks a request with callback-based completion.
- Parameters
-
| event_id | Event ID to track |
| callback | Function to call when OK response received |
| timeout | Maximum time to wait for response |
Definition at line 45 of file request_tracker.hpp.
The documentation for this class was generated from the following file: