Trait matrix_sdk_base::event_cache::store::EventCacheStore

source ·
pub trait EventCacheStore: AsyncTraitDeps {
    type Error: Debug + Into<EventCacheStoreError>;

    // Required methods
    fn try_take_leased_lock<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        lease_duration_ms: u32,
        key: &'life1 str,
        holder: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn add_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequestParameters,
        content: Vec<u8>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        from: &'life1 MediaRequestParameters,
        to: &'life2 MediaRequestParameters,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequestParameters,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn remove_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequestParameters,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
        &'life0 self,
        uri: &'life1 MxcUri,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

An abstract trait that can be used to implement different store backends for the event cache of the SDK.

Required Associated Types§

source

type Error: Debug + Into<EventCacheStoreError>

The error type used by this event cache store.

Required Methods§

source

fn try_take_leased_lock<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, lease_duration_ms: u32, key: &'life1 str, holder: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Try to take a lock using the given store.

source

fn add_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequestParameters, content: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Add a media file’s content in the media store.

§Arguments
  • request - The MediaRequest of the file.

  • content - The content of the file.

source

fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, from: &'life1 MediaRequestParameters, to: &'life2 MediaRequestParameters, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Replaces the given media’s content key with another one.

This should be used whenever a temporary (local) MXID has been used, and it must now be replaced with its actual remote counterpart (after uploading some content, or creating an empty MXC URI).

⚠ No check is performed to ensure that the media formats are consistent, i.e. it’s possible to update with a thumbnail key a media that was keyed as a file before. The caller is responsible of ensuring that the replacement makes sense, according to their use case.

This should not raise an error when the from parameter points to an unknown media, and it should silently continue in this case.

§Arguments
  • from - The previous MediaRequest of the file.

  • to - The new MediaRequest of the file.

source

fn get_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequestParameters, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get a media file’s content out of the media store.

§Arguments
  • request - The MediaRequest of the file.
source

fn remove_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequestParameters, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove a media file’s content from the media store.

§Arguments
  • request - The MediaRequest of the file.
source

fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 MxcUri, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove all the media files’ content associated to an MxcUri from the media store.

This should not raise an error when the uri parameter points to an unknown media, and it should return an Ok result in this case.

§Arguments
  • uri - The MxcUri of the media files.

Implementors§