import * as ReadWriteLock from "rwlock"; import { ResourceNode, ServiceEngine } from "@chip-in/resource-node"; import { TransactionObject } from "../db/Transaction"; import { ContextManager } from "./ContextManager"; /** * ユニーク制約キャッシュSEコンフィグレーションパラメータ */ export declare class UniqueCacheConfigDef { /** * データベース名 */ readonly database: string; /** * ユニーク制約対象 */ readonly field: string; } /** * ユニーク制約キャッシュ(UniqueCache) * * ユニーク制約キャッシュは、ユニーク制約をインメモリで処理するためのサービスエンジンである。 */ export declare class UniqueCache extends ServiceEngine { bootOrder: number; private currentCsn; private logger; private option; private node; private contextManager; private database; private field; private lock; private updateLock; private readyFlag; private index; constructor(option: UniqueCacheConfigDef); getOption(): UniqueCacheConfigDef; getNode(): ResourceNode; getLock(): ReadWriteLock; getReady(): boolean; pause(): void; setReady(): void; getCsn(): Promise; updateCsn(csn: number): Promise; getContextManager(): ContextManager; start(node: ResourceNode): Promise; stop(node: ResourceNode): Promise; static _convertKey(fields: string | string[], obj: any): string | null; private _addIndexKey; private _insert; private _insertMany; private _update; private _delete; private _deleteAll; private _has; /** * トランザクションの処理を行う */ procTransaction(transaction: TransactionObject): void; private updateSubsetDb; private rollbackSubsetDb; private rollforwardSubsetDb; private adjustData; resetData(csn: number, withJournal: boolean): Promise; _resetData(csn: number, withJournal: boolean): Promise; private resetData0; has(val: any, csn: number): Promise; }