pub struct AdvancedFeatures {
runtime: Arc<ApplicationRunTime>,
performance_stats: Arc<Mutex<PerformanceStats>>,
collaboration_sessions: Arc<Mutex<HashMap<String, CollaborationSession>>>,
message_cache: Arc<Mutex<MessageCache>>,
}Expand description
Advanced IPC features for enhanced Mountain-Wind synchronization
Fields§
§runtime: Arc<ApplicationRunTime>§performance_stats: Arc<Mutex<PerformanceStats>>§collaboration_sessions: Arc<Mutex<HashMap<String, CollaborationSession>>>§message_cache: Arc<Mutex<MessageCache>>Implementations§
Source§impl AdvancedFeatures
impl AdvancedFeatures
Sourcepub fn new(runtime: Arc<ApplicationRunTime>) -> Self
pub fn new(runtime: Arc<ApplicationRunTime>) -> Self
Create new advanced features instance
Sourcepub async fn start_monitoring(&self) -> Result<(), String>
pub async fn start_monitoring(&self) -> Result<(), String>
Start advanced monitoring
Sourceasync fn monitor_performance(&self)
async fn monitor_performance(&self)
Monitor performance statistics
Sourceasync fn calculate_performance_stats(&self) -> PerformanceStats
async fn calculate_performance_stats(&self) -> PerformanceStats
Calculate performance statistics
Sourceasync fn cleanup_cache(&self)
async fn cleanup_cache(&self)
Cleanup expired cache entries
Sourceasync fn monitor_collaboration_sessions(&self)
async fn monitor_collaboration_sessions(&self)
Monitor collaboration sessions
Sourcepub async fn cache_message(
&self,
message_id: String,
data: Value,
ttl: u64,
) -> Result<(), String>
pub async fn cache_message( &self, message_id: String, data: Value, ttl: u64, ) -> Result<(), String>
Cache a message for future reuse
Sourcepub async fn get_cached_message(&self, message_id: &str) -> Option<Value>
pub async fn get_cached_message(&self, message_id: &str) -> Option<Value>
Get cached message
Sourcepub async fn create_collaboration_session(
&self,
session_id: String,
permissions: CollaborationPermissions,
) -> Result<(), String>
pub async fn create_collaboration_session( &self, session_id: String, permissions: CollaborationPermissions, ) -> Result<(), String>
Create collaboration session
Sourcepub async fn add_participant(
&self,
session_id: &str,
participant: String,
) -> Result<(), String>
pub async fn add_participant( &self, session_id: &str, participant: String, ) -> Result<(), String>
Add participant to collaboration session
Sourcepub async fn record_message_statistics(
&self,
sent: bool,
processing_time_ms: u64,
)
pub async fn record_message_statistics( &self, sent: bool, processing_time_ms: u64, )
Record message statistics
Sourcepub async fn record_error(&self)
pub async fn record_error(&self)
Record error
Sourcepub async fn get_performance_stats(&self) -> Result<PerformanceStats, String>
pub async fn get_performance_stats(&self) -> Result<PerformanceStats, String>
Get performance statistics
Sourcepub async fn get_cache_stats(&self) -> Result<MessageCache, String>
pub async fn get_cache_stats(&self) -> Result<MessageCache, String>
Get cache statistics
Sourcepub async fn get_collaboration_sessions(&self) -> Vec<CollaborationSession>
pub async fn get_collaboration_sessions(&self) -> Vec<CollaborationSession>
Get active collaboration sessions
Sourcefn clone_features(&self) -> AdvancedFeatures
fn clone_features(&self) -> AdvancedFeatures
Clone features for async tasks
Trait Implementations§
Source§impl Clone for AdvancedFeatures
impl Clone for AdvancedFeatures
Source§fn clone(&self) -> AdvancedFeatures
fn clone(&self) -> AdvancedFeatures
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AdvancedFeatures
impl !RefUnwindSafe for AdvancedFeatures
impl Send for AdvancedFeatures
impl Sync for AdvancedFeatures
impl Unpin for AdvancedFeatures
impl !UnwindSafe for AdvancedFeatures
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].