UNPKG

@finos/legend-data-cube

Version:
59 lines 2.66 kB
/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { DataCubeSnapshot } from '../core/DataCubeSnapshot.js'; import type { DataCubeEngine } from '../core/DataCubeEngine.js'; import type { DataCubeSettingService } from './DataCubeSettingService.js'; import type { DataCubeLogService } from './DataCubeLogService.js'; interface DataCubeSnapshotSubscriber { getSnapshotSubscriberName(): string; getLatestSnapshot(): DataCubeSnapshot | undefined; receiveSnapshot(snapshot: DataCubeSnapshot): Promise<void>; } export declare abstract class DataCubeSnapshotController implements DataCubeSnapshotSubscriber { protected readonly _engine: DataCubeEngine; protected readonly _settingService: DataCubeSettingService; protected readonly _snapshotService: DataCubeSnapshotService; private _latestSnapshot; constructor(engine: DataCubeEngine, settingService: DataCubeSettingService, snapshotService: DataCubeSnapshotService); abstract getSnapshotSubscriberName(): string; getLatestSnapshot(): DataCubeSnapshot | undefined; receiveSnapshot(snapshot: DataCubeSnapshot): Promise<void>; abstract applySnapshot(snapshot: DataCubeSnapshot, previousSnapshot: DataCubeSnapshot | undefined): Promise<void>; publishSnapshot(snapshot: DataCubeSnapshot): void; } export declare class DataCubeSnapshotService { private readonly _logService; private readonly _settingService; private readonly _subscribers; private _snapshots; private _pointer; private _historySize; constructor(logService: DataCubeLogService, settingService: DataCubeSettingService); registerSubscriber(subscriber: DataCubeSnapshotSubscriber): void; private propagateSnapshot; getCurrentSnapshot(): DataCubeSnapshot; getHistory(options?: { full?: boolean; }): DataCubeSnapshot[]; get canUndo(): boolean; get canRedo(): boolean; undo(): void; redo(): void; adjustHistorySize(size: number): void; broadcastSnapshot(snapshot: DataCubeSnapshot): void; } export {}; //# sourceMappingURL=DataCubeSnapshotService.d.ts.map