@finos/legend-data-cube
Version:
59 lines • 2.66 kB
TypeScript
/**
* 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