yahoo-swiv
Version:
A web-based exploratory visualization UI for Druid.io
49 lines (48 loc) • 2.02 kB
TypeScript
/// <reference types="q" />
import * as Q from 'q';
import { External, Dataset } from 'swiv-plywood';
import { Logger } from 'logger-tracker';
import { TimeMonitor } from "../../../common/utils/time-monitor/time-monitor";
import { AppSettings, Timekeeper, Cluster } from '../../../common/models/index';
import { SettingsStore } from '../settings-store/settings-store';
import { FileManager } from '../file-manager/file-manager';
import { ClusterManager } from '../cluster-manager/cluster-manager';
export interface SettingsManagerOptions {
logger: Logger;
verbose?: boolean;
initialLoadTimeout?: number;
anchorPath: string;
}
export interface GetSettingsOptions {
dataCubeOfInterest?: string;
timeout?: number;
}
export declare class SettingsManager {
logger: Logger;
verbose: boolean;
anchorPath: string;
settingsStore: SettingsStore;
appSettings: AppSettings;
timeMonitor: TimeMonitor;
fileManagers: FileManager[];
clusterManagers: ClusterManager[];
currentWork: Q.Promise<any>;
initialLoadTimeout: number;
constructor(settingsStore: SettingsStore, options: SettingsManagerOptions);
isStateful(): boolean;
private getClusterManagerFor(clusterName);
private addClusterManager(cluster, dataCubes);
private removeClusterManager(cluster);
private getFileManagerFor(uri);
private addFileManager(dataCube);
private removeFileManager(dataCube);
getTimekeeper(): Timekeeper;
getSettings(opts?: GetSettingsOptions): Q.Promise<AppSettings>;
reviseSettings(newSettings: AppSettings): Q.Promise<any>;
reviseClusters(newSettings: AppSettings): Q.Promise<any>;
reviseDataCubes(newSettings: AppSettings): Q.Promise<any>;
updateSettings(newSettings: AppSettings): Q.Promise<any>;
generateDataCubeName(external: External): string;
onDatasetChange(dataCubeName: string, changedDataset: Dataset): void;
onExternalChange(cluster: Cluster, dataCubeName: string, changedExternal: External): Q.Promise<any>;
}