33 std::variant<ControlClientConnectionPrincipal, ControlHostConnectionPrincipal>;
56 std::optional<ControlConnectionAdmissionTicket>
ticket;
73 using Clock = std::function<std::chrono::steady_clock::time_point()>;
77 Clock clock = [] {
return std::chrono::steady_clock::now(); });
85 std::optional<ControlConnectionAdmission>
consume(std::string_view admission_id);
91 std::unique_ptr<Impl> impl_;
ControlConnectionAdmissionStore(const ControlConnectionAdmissionStore &)=delete
ControlConnectionAdmissionResult issue(ControlPeerExpectation expected_peer, ControlConnectionPrincipal principal)
std::function< std::chrono::steady_clock::time_point()> Clock
Definition control_connection_admission.hpp:73
ControlConnectionAdmissionStore(ControlConnectionAdmissionStoreConfig config={}, Clock clock=[] { return std::chrono::steady_clock::now();})
ControlConnectionAdmissionStore & operator=(const ControlConnectionAdmissionStore &)=delete
std::optional< ControlConnectionAdmission > consume(std::string_view admission_id)
~ControlConnectionAdmissionStore()
Definition agent_context.hpp:7
constexpr std::size_t kControlMaximumConnectionAdmissions
Definition control_connection_admission.hpp:17
constexpr auto kControlMaximumConnectionAdmissionTtl
Definition control_connection_admission.hpp:18
ControlConnectionAdmissionStatus
Definition control_connection_admission.hpp:42
@ Issued
Definition control_connection_admission.hpp:43
@ EntropyUnavailable
Definition control_connection_admission.hpp:46
@ InvalidRequest
Definition control_connection_admission.hpp:44
std::variant< ControlClientConnectionPrincipal, ControlHostConnectionPrincipal > ControlConnectionPrincipal
Definition control_connection_admission.hpp:32
@ ResourceExhausted
Definition control_admission.hpp:26
@ InvalidRequest
Definition control_admission.hpp:17
Definition control_connection_admission.hpp:20
ControlClientId client_id
Definition control_connection_admission.hpp:21
friend bool operator==(const ControlClientConnectionPrincipal &, const ControlClientConnectionPrincipal &)=default
Definition control_identity.hpp:28
Definition control_connection_admission.hpp:54
ControlConnectionAdmissionStatus status
Definition control_connection_admission.hpp:55
std::optional< ControlConnectionAdmissionTicket > ticket
Definition control_connection_admission.hpp:56
Definition control_connection_admission.hpp:59
std::size_t maximum_admissions
Definition control_connection_admission.hpp:60
std::chrono::milliseconds admission_ttl
Definition control_connection_admission.hpp:61
Definition control_connection_admission.hpp:49
std::string admission_id
Definition control_connection_admission.hpp:50
std::chrono::steady_clock::time_point expires_at
Definition control_connection_admission.hpp:51
Definition control_connection_admission.hpp:35
ControlPeerExpectation expected_peer
Definition control_connection_admission.hpp:37
ControlConnectionPrincipal principal
Definition control_connection_admission.hpp:38
std::string admission_id
Definition control_connection_admission.hpp:36
std::chrono::steady_clock::time_point expires_at
Definition control_connection_admission.hpp:39
Definition control_connection_admission.hpp:26
friend bool operator==(const ControlHostConnectionPrincipal &, const ControlHostConnectionPrincipal &)=default
ControlRegistrationId registration_id
Definition control_connection_admission.hpp:27
Exact broker-owned peer expectation.
Definition control_peer.hpp:12
Definition control_identity.hpp:36