Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 28x 28x 28x 28x 4x 4x 4x 28x 28x 324x 324x 324x 379x 321x 58x 58x 58x 58x 2x 2x 2x 1x 2x 1x 2x 28x 4x 28x 8x 2x 2x 2x 28x | import { Injectable } from '@angular/core'; import * as _ from 'lodash'; import { ExecutingTask } from '../models/executing-task'; import { FinishedTask } from '../models/finished-task'; import { Task } from '../models/task'; import { SummaryService } from './summary.service'; class TaskSubscription { name: string; metadata: object; onTaskFinished: (finishedTask: FinishedTask) => any; constructor(name, metadata, onTaskFinished) { this.name = name; this.metadata = metadata; this.onTaskFinished = onTaskFinished; } } @Injectable({ providedIn: 'root' }) export class TaskManagerService { subscriptions: Array<TaskSubscription> = []; constructor(summaryService: SummaryService) { summaryService.subscribe((data: any) => { if (!data) { return; } const executingTasks = data.executing_tasks; const finishedTasks = data.finished_tasks; const newSubscriptions: Array<TaskSubscription> = []; for (const subscription of this.subscriptions) { const finishedTask = <FinishedTask>this._getTask(subscription, finishedTasks); const executingTask = <ExecutingTask>this._getTask(subscription, executingTasks); if (finishedTask !== null && executingTask === null) { subscription.onTaskFinished(finishedTask); } if (executingTask !== null) { newSubscriptions.push(subscription); } this.subscriptions = newSubscriptions; } }); } subscribe(name, metadata, onTaskFinished: (finishedTask: FinishedTask) => any) { this.subscriptions.push(new TaskSubscription(name, metadata, onTaskFinished)); } _getTask(subscription: TaskSubscription, tasks: Array<Task>): Task { for (const task of tasks) { Eif (task.name === subscription.name && _.isEqual(task.metadata, subscription.metadata)) { return task; } } return null; } } |