UNPKG

@incremunica/streaming-query-source

Version:

A base class for streaming query sources

28 lines (27 loc) 1.37 kB
/// <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; }