TARAXA
|
#include <watches.hpp>
Classes | |
struct | Watch |
Public Types | |
using | InputType = InputType_ |
using | OutputType = std::conditional_t< std::is_same_v< OutputType_, placeholder_t >, InputType, OutputType_ > |
using | time_point = std::chrono::high_resolution_clock::time_point |
using | Updater = std::function< void(Params const &, InputType const &, std::function< void(OutputType const &)> const &)> |
Public Member Functions | |
WatchGroup (WatchesConfig const &cfg={}, Updater &&updater={}) | |
WatchID | install_watch (Params &¶ms={}) const |
bool | uninstall_watch (WatchID watch_id) const |
void | uninstall_stale_watches () const |
std::optional< Params > | get_watch_params (WatchID watch_id) const |
void | process_update (InputType const &obj_in) const |
auto | poll (WatchID watch_id) const |
Static Public Attributes | |
static constexpr auto | type = type_ |
Private Attributes | |
WatchGroupConfig | cfg_ |
Updater | updater_ |
std::unordered_map< WatchID, Watch > | watches_ |
std::shared_mutex | watches_mu_ |
WatchID | watch_id_seq_ = 0 |
struct taraxa::net::rpc::eth::WatchGroup::Watch |
Class Members | ||
---|---|---|
time_point | last_touched {} | |
DefaultConstructCopyableMovable< shared_mutex > | mu {} | |
Params | params | |
vector< OutputType > | updates {} |
using taraxa::net::rpc::eth::WatchGroup< type_, InputType_, OutputType_, Params >::InputType = InputType_ |
using taraxa::net::rpc::eth::WatchGroup< type_, InputType_, OutputType_, Params >::OutputType = std::conditional_t<std::is_same_v<OutputType_, placeholder_t>, InputType, OutputType_> |
using taraxa::net::rpc::eth::WatchGroup< type_, InputType_, OutputType_, Params >::time_point = std::chrono::high_resolution_clock::time_point |
using taraxa::net::rpc::eth::WatchGroup< type_, InputType_, OutputType_, Params >::Updater = std::function<void(Params const&, InputType const&, std::function<void(OutputType const&)> const& )> |
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
staticconstexpr |
|
private |
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |