@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.4 kB
TypeScript
/**
* @module SharedLock
*/
import type { IDatabaseSharedLockAdapter } from "../../../../shared-lock/contracts/_module-exports.js";
import type { ISharedLockAdapter, ISharedLockAdapterState, SharedLockAcquireSettings } from "../../../../shared-lock/contracts/_module-exports.js";
import type { TimeSpan } from "../../../../time-span/implementations/_module-exports.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(key: string, lockId: string, ttl: TimeSpan | null): Promise<boolean>;
releaseWriter(key: string, lockId: string): Promise<boolean>;
forceReleaseWriter(key: string): Promise<boolean>;
refreshWriter(key: string, lockId: string, ttl: TimeSpan): Promise<boolean>;
acquireReader(settings: SharedLockAcquireSettings): Promise<boolean>;
releaseReader(key: string, lockId: string): Promise<boolean>;
forceReleaseAllReaders(key: string): Promise<boolean>;
refreshReader(key: string, slotId: string, ttl: TimeSpan): Promise<boolean>;
forceRelease(key: string): Promise<boolean>;
getState(key: string): Promise<ISharedLockAdapterState | null>;
}