@breautek/storm
Version:
Object-Oriented REST API framework
18 lines (17 loc) • 991 B
TypeScript
import { DatabaseConnection } from './DatabaseConnection';
import { IDatabasePosition } from './IDatabasePosition';
export declare abstract class Database<TDatabaseConfig, TConnectionAPI> {
private $clusterConfigMap;
constructor();
addMaster(config: TDatabaseConfig): void;
removeMaster(): void;
addSlave(slaveID: string, config: TDatabaseConfig): string;
removeSlave(slaveID: string): void;
getConnection(requireWriteAccess?: boolean, nodeID?: string, requiredPosition?: IDatabasePosition): Promise<DatabaseConnection<TConnectionAPI>>;
destroy(): Promise<void>;
protected abstract _destroy(): Promise<void>;
protected abstract _addNode(name: string, config: TDatabaseConfig): void;
protected abstract _removeNode(name: string): void;
protected abstract _getConnection(query: string, requireWriteAccess: boolean, requiredPosition?: IDatabasePosition): Promise<DatabaseConnection<TConnectionAPI>>;
abstract escape(query: string): string;
}