Skip to main content

LeaseRepository

Trait LeaseRepository 

Source
pub trait LeaseRepository: Send + Sync {
    // Required methods
    fn acquire(
        &self,
        resource: &str,
        owner: LeaseOwner,
        now_ms: u64,
    ) -> ProviderResult<SharedResourceLease>;
    fn heartbeat(
        &self,
        heartbeat: LeaseHeartbeat,
    ) -> ProviderResult<SharedResourceLease>;
    fn release(&self, token: &LeaseToken) -> ProviderResult<()>;
    fn current(
        &self,
        resource: &str,
    ) -> ProviderResult<Option<SharedResourceLease>>;
    fn check_fence(
        &self,
        token: &LeaseToken,
        now_ms: u64,
    ) -> ProviderResult<LeaseDecision>;
}
Expand description

Provider-independent shared-resource lease repository.

Required Methods§

Source

fn acquire( &self, resource: &str, owner: LeaseOwner, now_ms: u64, ) -> ProviderResult<SharedResourceLease>

Acquires a lease or recovers an expired one.

Source

fn heartbeat( &self, heartbeat: LeaseHeartbeat, ) -> ProviderResult<SharedResourceLease>

Renews a lease held by the same owner and fencing epoch.

Source

fn release(&self, token: &LeaseToken) -> ProviderResult<()>

Releases a current lease.

Source

fn current(&self, resource: &str) -> ProviderResult<Option<SharedResourceLease>>

Returns the current durable lease state, expired or not.

Source

fn check_fence( &self, token: &LeaseToken, now_ms: u64, ) -> ProviderResult<LeaseDecision>

Checks whether a writer still owns the current fencing token.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§