d747e5dbc8ea464d4bb624e1842ca948a566eb7a2277c6bfb69ac13daf0799ed83ecc1d405ee71580076d6d8c15ae9867a51aaf39ad5759f50d9b9e8700936 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import SeriesModel from '../model/Series.js';
  2. import { Pipeline } from './Scheduler.js';
  3. import { Payload } from '../util/types.js';
  4. import SeriesData from '../data/SeriesData.js';
  5. export interface TaskContext {
  6. outputData?: SeriesData;
  7. data?: SeriesData;
  8. payload?: Payload;
  9. model?: SeriesModel;
  10. }
  11. export declare type TaskResetCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskResetCallbackReturn<Ctx>;
  12. export declare type TaskResetCallbackReturn<Ctx extends TaskContext> = void | (TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[]) | {
  13. forceFirstProgress?: boolean;
  14. progress: TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[];
  15. };
  16. export declare type TaskProgressCallback<Ctx extends TaskContext> = (this: Task<Ctx>, params: TaskProgressParams, context: Ctx) => void;
  17. export declare type TaskProgressParams = {
  18. start: number;
  19. end: number;
  20. count: number;
  21. next?: TaskDataIteratorNext;
  22. };
  23. export declare type TaskPlanCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskPlanCallbackReturn;
  24. export declare type TaskPlanCallbackReturn = 'reset' | false | null | undefined;
  25. export declare type TaskCountCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => number;
  26. export declare type TaskOnDirtyCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => void;
  27. declare type TaskDataIteratorNext = () => number;
  28. declare type TaskDefineParam<Ctx extends TaskContext> = {
  29. reset?: TaskResetCallback<Ctx>;
  30. plan?: TaskPlanCallback<Ctx>;
  31. count?: TaskCountCallback<Ctx>;
  32. onDirty?: TaskOnDirtyCallback<Ctx>;
  33. };
  34. export declare type PerformArgs = {
  35. step?: number;
  36. skip?: boolean;
  37. modBy?: number;
  38. modDataCount?: number;
  39. };
  40. /**
  41. * @param {Object} define
  42. * @return See the return of `createTask`.
  43. */
  44. export declare function createTask<Ctx extends TaskContext>(define: TaskDefineParam<Ctx>): Task<Ctx>;
  45. export declare class Task<Ctx extends TaskContext> {
  46. private _reset;
  47. private _plan;
  48. private _count;
  49. private _onDirty;
  50. private _progress;
  51. private _callingProgress;
  52. private _dirty;
  53. private _modBy;
  54. private _modDataCount;
  55. private _upstream;
  56. private _downstream;
  57. private _dueEnd;
  58. private _outputDueEnd;
  59. private _settedOutputEnd;
  60. private _dueIndex;
  61. private _disposed;
  62. __pipeline: Pipeline;
  63. __idxInPipeline: number;
  64. __block: boolean;
  65. context: Ctx;
  66. constructor(define: TaskDefineParam<Ctx>);
  67. /**
  68. * @param step Specified step.
  69. * @param skip Skip customer perform call.
  70. * @param modBy Sampling window size.
  71. * @param modDataCount Sampling count.
  72. * @return whether unfinished.
  73. */
  74. perform(performArgs?: PerformArgs): boolean;
  75. dirty(): void;
  76. private _doProgress;
  77. private _doReset;
  78. unfinished(): boolean;
  79. /**
  80. * @param downTask The downstream task.
  81. * @return The downstream task.
  82. */
  83. pipe(downTask: Task<Ctx>): void;
  84. dispose(): void;
  85. getUpstream(): Task<Ctx>;
  86. getDownstream(): Task<Ctx>;
  87. setOutputEnd(end: number): void;
  88. }
  89. export {};