UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

28 lines (27 loc) 1.66 kB
/** * @module SharedLock */ import { type IReadableContext } from "../../../../execution-context/contracts/_module.js"; import { type IDatabaseSharedLockAdapter, type ISharedLockAdapter, type ISharedLockAdapterState, type SharedLockAcquireSettings } from "../../../../shared-lock/contracts/_module.js"; import { type TimeSpan } from "../../../../time-span/implementations/_module.js"; /** * @internal */ export declare class DatabaseSharedLockAdapter implements ISharedLockAdapter { private readonly adapter; private static _forceReleaseWriter; private static _forceReleaseAllReaders; private static getWriterState; private static getReaderState; constructor(adapter: IDatabaseSharedLockAdapter); acquireWriter(context: IReadableContext, key: string, lockId: string, ttl: TimeSpan | null): Promise<boolean>; releaseWriter(context: IReadableContext, key: string, lockId: string): Promise<boolean>; forceReleaseWriter(context: IReadableContext, key: string): Promise<boolean>; refreshWriter(context: IReadableContext, key: string, lockId: string, ttl: TimeSpan): Promise<boolean>; acquireReader(settings: SharedLockAcquireSettings): Promise<boolean>; releaseReader(context: IReadableContext, key: string, lockId: string): Promise<boolean>; forceReleaseAllReaders(context: IReadableContext, key: string): Promise<boolean>; refreshReader(context: IReadableContext, key: string, slotId: string, ttl: TimeSpan): Promise<boolean>; forceRelease(context: IReadableContext, key: string): Promise<boolean>; getState(context: IReadableContext, key: string): Promise<ISharedLockAdapterState | null>; }