@incremunica/streaming-query-source
Version:
A base class for streaming query sources
28 lines (27 loc) • 1.37 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import type { BindingsStream, FragmentSelectorShape, IActionContext, IQuerySource, IQueryBindingsOptions, QuerySourceReference } from '@comunica/types';
import type { Quad } from '@rdfjs/types';
import type { AsyncIterator } from 'asynciterator';
import type { Ask, Operation, Update } from 'sparqlalgebrajs/lib/algebra';
export declare enum StreamingQuerySourceStatus {
Initializing = 0,
Running = 1,
Idle = 2,
Stopped = 3
}
export declare abstract class StreamingQuerySource implements IQuerySource {
private _status;
statusEvents: EventEmitter;
context?: IActionContext;
get status(): StreamingQuerySourceStatus;
protected set status(value: StreamingQuerySourceStatus);
abstract halt(): void;
abstract resume(): void;
abstract getSelectorShape(_context: IActionContext): Promise<FragmentSelectorShape>;
abstract queryBindings(_operation: Operation, _context: IActionContext, _options: IQueryBindingsOptions | undefined): BindingsStream;
abstract queryBoolean(_operation: Ask, _context: IActionContext): Promise<boolean>;
abstract queryQuads(_operation: Operation, _context: IActionContext): AsyncIterator<Quad>;
abstract queryVoid(_operation: Update, _context: IActionContext): Promise<void>;
referenceValue: QuerySourceReference;
}