/// import * as http from "http"; import * as ReadWriteLock from "rwlock"; import { Proxy, ResourceNode, ServiceEngine } from "@chip-in/resource-node"; import { JournalDb } from "../db/JournalDb"; import { SubsetDb } from "../db/SubsetDb"; import { SystemDb } from "../db/SystemDb"; import { TransactionObject } from "../db/Transaction"; import { CountResult, CsnMode, QueryResult } from "./Dadget"; /** * サブセットストレージコンフィグレーションパラメータ */ export declare class SubsetStorageConfigDef { /** * データベース名 */ readonly database: string; /** * サブセット名 */ readonly subset: string; /** * 上位サブセット名 */ readonly subscribe?: string; /** * true の場合はクエリハンドラを "loadBalancing" モードで登録し、外部にサービスを公開する。 false の場合はクエリハンドラを "localOnly" モードで登録する */ readonly exported?: boolean; /** * サブセットストレージのタイプで persistent か cache のいずれかである */ readonly type: "persistent" | "cache"; /** * エクスポート処理での一回あたりの最大処理数 */ readonly exportMaxLines?: number; } /** * サブセットストレージ(SubsetStorage) * * サブセットストレージは、クエリハンドラと更新レシーバの機能を提供するサービスエンジンである。 */ export declare class SubsetStorage extends ServiceEngine implements Proxy { bootOrder: number; committedCsn?: number; private logger; private option; private node; private database; private subsetName; private subsetDefinition; private type; private subsetDb; private journalDb; private systemDb; private mountHandle; private mounted; private lock; private queryWaitingList; private subscriberKey; private readyFlag; private readyQueue; private updateProcessor; private updateListener; private updateListenerKey?; private updateListenerMountHandle?; notifyListener?: { procNotify: (transaction: TransactionObject) => void; }; constructor(option: SubsetStorageConfigDef); getOption(): SubsetStorageConfigDef; getNode(): ResourceNode; getSubsetDb(): SubsetDb; getJournalDb(): JournalDb; getSystemDb(): SystemDb; getLock(): ReadWriteLock; getDbName(): string; getType(): string; getReady(): boolean; waitReady(): Promise; isWhole(): boolean; pause(): void; setReady(transaction?: TransactionObject): void; pullQueryWaitingList(csn: number): (() => Promise)[]; start(node: ResourceNode): Promise; connectUpdateListener(): void; subscribeUpdateListener(): Promise; subscribeUpdateProcessor(): Promise; stop(node: ResourceNode): Promise; onReceive(req: http.IncomingMessage, res: http.ServerResponse): Promise; count(csn: number, query: object, csnMode?: CsnMode): Promise; query(csn: number, query: object, sort?: object, limit?: number, csnMode?: CsnMode, projection?: object, offset?: number): Promise; wait(csn: number): Promise; static rollbackAndFind(orgList: any[], transactions: TransactionObject[], query: object, sort?: object, limit?: number, offset?: number): any[]; }