pub struct EventQueryHandler { /* private fields */ }Expand description
Handler for event queries
Processes incoming queries, applying filters to the local event store and optionally forwarding queries to subordinates.
Implementations§
Source§impl EventQueryHandler
impl EventQueryHandler
Sourcepub fn new(
node_id: String,
formation_id: String,
event_store: Arc<dyn EventStore>,
) -> Self
pub fn new( node_id: String, formation_id: String, event_store: Arc<dyn EventStore>, ) -> Self
Create a new query handler
Sourcepub fn with_memory_store(node_id: String, formation_id: String) -> Self
pub fn with_memory_store(node_id: String, formation_id: String) -> Self
Create a new query handler with a default in-memory store
Sourcepub fn add_subordinate(&self, node_id: &str)
pub fn add_subordinate(&self, node_id: &str)
Register a subordinate node
Sourcepub fn remove_subordinate(&self, node_id: &str)
pub fn remove_subordinate(&self, node_id: &str)
Remove a subordinate node
Sourcepub fn formation_id(&self) -> &str
pub fn formation_id(&self) -> &str
Get the formation ID
Sourcepub fn store_event(&self, event: PeatEvent)
pub fn store_event(&self, event: PeatEvent)
Store an event in the local store
Sourcepub fn event_count(&self) -> usize
pub fn event_count(&self) -> usize
Get count of stored events
Sourcepub fn handle_query(&self, query: &EventQuery) -> QueryResult
pub fn handle_query(&self, query: &EventQuery) -> QueryResult
Handle an incoming query
For local queries (node_id matches), returns results from local store. For subordinate queries, returns information about which nodes should be queried.
Sourcepub fn query_local(&self, query: &EventQuery) -> EventQueryResponse
pub fn query_local(&self, query: &EventQuery) -> EventQueryResponse
Query the local event store
Sourcepub fn merge_responses(
query_id: &str,
responder_id: &str,
responses: Vec<EventQueryResponse>,
limit: u32,
) -> EventQueryResponse
pub fn merge_responses( query_id: &str, responder_id: &str, responses: Vec<EventQueryResponse>, limit: u32, ) -> EventQueryResponse
Merge multiple query responses into one
Sourcepub fn create_node_query(
requester_id: &str,
node_id: &str,
filters: Option<EventFilters>,
limit: u32,
) -> EventQuery
pub fn create_node_query( requester_id: &str, node_id: &str, filters: Option<EventFilters>, limit: u32, ) -> EventQuery
Create a query for a specific node
Sourcepub fn create_formation_query(
requester_id: &str,
formation_id: &str,
filters: Option<EventFilters>,
limit: u32,
) -> EventQuery
pub fn create_formation_query( requester_id: &str, formation_id: &str, filters: Option<EventFilters>, limit: u32, ) -> EventQuery
Create a query for a formation
Sourcepub fn create_subordinates_query(
requester_id: &str,
filters: Option<EventFilters>,
limit: u32,
) -> EventQuery
pub fn create_subordinates_query( requester_id: &str, filters: Option<EventFilters>, limit: u32, ) -> EventQuery
Create a query for all subordinates
Sourcepub fn enforce_ttl(&self)
pub fn enforce_ttl(&self)
Remove expired events from the store
Auto Trait Implementations§
impl !Freeze for EventQueryHandler
impl !RefUnwindSafe for EventQueryHandler
impl Send for EventQueryHandler
impl Sync for EventQueryHandler
impl Unpin for EventQueryHandler
impl UnsafeUnpin for EventQueryHandler
impl !UnwindSafe for EventQueryHandler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more