|
Everett
|
#include <session.h>
Classes | |
| struct | identity |
| struct | logical_state |
| struct | publication |
| struct | request |
| struct | ticket |
Public Types | |
| using | world_type = typename Engine::world_type |
| using | contribution_type = typename Engine::contribution_type |
| using | snapshot_type = std::shared_ptr< publication const > |
Public Member Functions | |
| session (Engine engine, session_limits limits) | |
| session (session const &)=delete | |
| session & | operator= (session const &)=delete |
| session (session &&)=delete | |
| session & | operator= (session &&)=delete |
| ~session () | |
| snapshot_type | snapshot () const noexcept |
| template<class C > requires (!std::same_as<std::remove_cvref_t<C>, contribution_type>) && requires(C && input) { { Engine::borrow_contribution(std::forward<C>(input)) } -> std::same_as<contribution_type>; } | |
| std::optional< ticket > | try_submit (C &&input) |
| template<class C > requires (!std::same_as<std::remove_cvref_t<C>, contribution_type>) && requires(C && input) { { Engine::borrow_contribution(std::forward<C>(input)) } -> std::same_as<contribution_type>; } | |
| ticket | submit (C &&input) |
| template<class C > requires (!std::same_as<std::remove_cvref_t<C>, contribution_type>) && requires(C && input) { { Engine::borrow_contribution(std::forward<C>(input)) } -> std::same_as<contribution_type>; } | |
| snapshot_type | apply (C &&input) |
| template<class C > requires std::same_as<std::remove_cvref_t<C>, contribution_type> | |
| std::optional< ticket > | try_submit (C &&input) |
| template<class C > requires std::same_as<std::remove_cvref_t<C>, contribution_type> | |
| ticket | submit (C &&input) |
| template<class C > requires std::same_as<std::remove_cvref_t<C>, contribution_type> | |
| snapshot_type | apply (C &&input) |
| bool | cancel (ticket const &value) |
| session_reservation | outstanding () const |
| std::uint64_t | pending_count () const |
| std::exception_ptr | failure () const |
| void | close () |
| void | shutdown () |
Private Member Functions | |
| bool | fits (session_reservation charge) const noexcept |
| void | available () const |
| template<class C > | |
| std::optional< ticket > | enqueue (C &&input, bool wait) |
| void | unreserve (session_reservation charge) noexcept |
| snapshot_type | next (world_type world, bool contribution) const |
| void | failed (std::shared_ptr< request > const &active, std::exception_ptr error) noexcept |
| void | run (bool pending) noexcept |
Private Attributes | |
| std::unique_ptr< Engine > | engine_ |
| session_limits | limits_ |
| std::shared_ptr< identity const > | identity_ = std::make_shared<identity const>() |
| snapshot_type | current_ |
| std::mutex | mutex_ |
| std::mutex | join_mutex_ |
| std::condition_variable | changed_ |
| std::list< std::shared_ptr< request > > | queue_ |
| session_reservation | reserved_ |
| std::uint64_t | count_ = 0 |
| bool | closing_ = false |
| std::exception_ptr | failure_ |
| std::thread | worker_ |
Static Private Attributes | |
| static thread_local session const * | worker_session_ = nullptr |
| using everett::session< Engine >::contribution_type = typename Engine::contribution_type |
| using everett::session< Engine >::snapshot_type = std::shared_ptr<publication const> |
| using everett::session< Engine >::world_type = typename Engine::world_type |
|
inlineexplicit |
|
delete |
|
delete |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivatenoexcept |
|
inline |
|
inlineprivatenoexcept |
|
inlineprivate |
|
delete |
|
delete |
|
inline |
|
inline |
|
inlineprivatenoexcept |
|
inline |
|
inlinenoexcept |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivatenoexcept |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
inlinestaticprivate |