@openhps/core
Version:
Open Hybrid Positioning System - Core component
38 lines (31 loc) • 988 B
text/typescript
import { DataFrame } from '../../data/DataFrame';
import { SourceNode, SourceNodeOptions } from '../SourceNode';
/**
* This source node is initialized with an array of data. This data
* is popped when pulling from this node.
* @category Source node
*/
export class ListSourceNode<Out extends DataFrame> extends SourceNode<Out> {
private _inputData: Out[] = [];
constructor(inputData: Out[], options?: SourceNodeOptions) {
super(options);
this._inputData = inputData;
}
public get inputData(): Out[] {
return this._inputData;
}
public set inputData(inputData: Out[]) {
this._inputData = inputData;
}
public get size(): number {
return this._inputData.length;
}
public onPull(): Promise<Out> {
return new Promise<Out>((resolve) => {
if (this._inputData.length !== 0) {
resolve(this._inputData.shift());
}
resolve(null);
});
}
}