1 | /**
|
---|
2 | * @license
|
---|
3 | * Copyright Google LLC All Rights Reserved.
|
---|
4 | *
|
---|
5 | * Use of this source code is governed by an MIT-style license that can be
|
---|
6 | * found in the LICENSE file at https://angular.io/license
|
---|
7 | */
|
---|
8 | /// <amd-module name="@angular/compiler-cli/ngcc/src/execution/cluster/master" />
|
---|
9 | import { PathManipulation } from '../../../../src/ngtsc/file_system';
|
---|
10 | import { Logger } from '../../../../src/ngtsc/logging';
|
---|
11 | import { FileWriter } from '../../writing/file_writer';
|
---|
12 | import { PackageJsonUpdater } from '../../writing/package_json_updater';
|
---|
13 | import { AnalyzeEntryPointsFn } from '../api';
|
---|
14 | import { CreateTaskCompletedCallback } from '../tasks/api';
|
---|
15 | /**
|
---|
16 | * The cluster master is responsible for analyzing all entry-points, planning the work that needs to
|
---|
17 | * be done, distributing it to worker-processes and collecting/post-processing the results.
|
---|
18 | */
|
---|
19 | export declare class ClusterMaster {
|
---|
20 | private maxWorkerCount;
|
---|
21 | private fileSystem;
|
---|
22 | private logger;
|
---|
23 | private fileWriter;
|
---|
24 | private pkgJsonUpdater;
|
---|
25 | private finishedDeferred;
|
---|
26 | private processingStartTime;
|
---|
27 | private taskAssignments;
|
---|
28 | private taskQueue;
|
---|
29 | private onTaskCompleted;
|
---|
30 | private remainingRespawnAttempts;
|
---|
31 | constructor(maxWorkerCount: number, fileSystem: PathManipulation, logger: Logger, fileWriter: FileWriter, pkgJsonUpdater: PackageJsonUpdater, analyzeEntryPoints: AnalyzeEntryPointsFn, createTaskCompletedCallback: CreateTaskCompletedCallback);
|
---|
32 | run(): Promise<void>;
|
---|
33 | /** Try to find available (idle) workers and assign them available (non-blocked) tasks. */
|
---|
34 | private maybeDistributeWork;
|
---|
35 | /** Handle a worker's exiting. (Might be intentional or not.) */
|
---|
36 | private onWorkerExit;
|
---|
37 | /** Handle a message from a worker. */
|
---|
38 | private onWorkerMessage;
|
---|
39 | /** Handle a worker's coming online. */
|
---|
40 | private onWorkerOnline;
|
---|
41 | /** Handle a worker's having completed their assigned task. */
|
---|
42 | private onWorkerTaskCompleted;
|
---|
43 | /** Handle a worker's message regarding the files transformed while processing its task. */
|
---|
44 | private onWorkerTransformedFiles;
|
---|
45 | /** Handle a worker's request to update a `package.json` file. */
|
---|
46 | private onWorkerUpdatePackageJson;
|
---|
47 | /** Stop all workers and stop listening on cluster events. */
|
---|
48 | private stopWorkers;
|
---|
49 | /**
|
---|
50 | * Wrap an event handler to ensure that `finishedDeferred` will be rejected on error (regardless
|
---|
51 | * if the handler completes synchronously or asynchronously).
|
---|
52 | */
|
---|
53 | private wrapEventHandler;
|
---|
54 | }
|
---|