@uwdata/mosaic-core
Version:
Scalable and extensible linked data views.
77 lines • 2.44 kB
TypeScript
import type { Connector } from './connectors/Connector.js';
import type { Cache, Logger, QueryEntry, QueryRequest } from './types.js';
import { QueryResult } from './util/query-result.js';
export declare const Priority: Readonly<{
High: 0;
Normal: 1;
Low: 2;
}>;
export declare class QueryManager {
private queue;
private db;
private clientCache;
private _logger;
private _logQueries;
private _consolidate;
/** Requests pending with the query manager. */
pendingResults: QueryResult[];
private maxConcurrentRequests;
private pendingExec;
constructor(maxConcurrentRequests?: number);
next(): void;
/**
* Add an entry to the query queue with a priority.
* @param entry The entry to add.
* @param priority The query priority, defaults to `Priority.Normal`.
*/
enqueue(entry: QueryEntry, priority?: number): void;
/**
* Submit the query to the connector.
* @param request The request.
* @param result The query result.
*/
submit(request: QueryRequest, result: QueryResult): Promise<void>;
/**
* Get or set the current query cache.
* @param value Cache value to set
* @returns Current cache
*/
cache(): Cache | null;
cache(value: Cache | boolean): Cache;
/**
* Get or set the current logger.
* @param value Logger to set
* @returns Current logger
*/
logger(): Logger;
logger(value: Logger): Logger;
/**
* Get or set if queries should be logged.
* @param value Whether to log queries
* @returns Current logging state
*/
logQueries(): boolean;
logQueries(value: boolean): boolean;
/**
* Get or set the database connector.
* @param connector Connector to set
* @returns Current connector
*/
connector(): Connector | null;
connector(connector: Connector): Connector;
/**
* Indicate if query consolidation should be performed.
* @param flag Whether to enable consolidation
*/
consolidate(flag: boolean): void;
/**
* Request a query result.
* @param request The request.
* @param priority The query priority, defaults to `Priority.Normal`.
* @returns A query result promise.
*/
request(request: QueryRequest, priority?: number): QueryResult;
cancel(requests: QueryResult[]): void;
clear(): void;
}
//# sourceMappingURL=QueryManager.d.ts.map