diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java new file mode 100644 index 0000000000..a1615cf02e --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java @@ -0,0 +1,68 @@ +// Copyright 2014 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.skyframe; + +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.devtools.build.lib.analysis.BlazeDirectories; +import com.google.devtools.build.lib.analysis.WorkspaceStatusAction.Factory; +import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory; +import com.google.devtools.build.lib.events.Reporter; +import com.google.devtools.build.lib.packages.PackageFactory; +import com.google.devtools.build.lib.packages.Preprocessor; +import com.google.devtools.build.lib.util.AbruptExitException; +import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; +import com.google.devtools.build.lib.vfs.Path; +import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.skyframe.SkyFunction; +import com.google.devtools.build.skyframe.SkyFunctionName; + +import java.util.Set; + +/** +* A factory that creates instances of SkyframeExecutor. +*/ +public interface SkyframeExecutorFactory { + + /** + * Creates an instance of SkyframeExecutor + * + * @param reporter the reporter to be used by the executor + * @param pkgFactory the package factory + * @param skyframeBuild use Skyframe for the build phase. Should be always true after we are in + * the skyframe full mode. + * @param tsgm timestamp granularity monitor + * @param directories Blaze directories + * @param workspaceStatusActionFactory a factory for creating WorkspaceStatusAction objects + * @param buildInfoFactories list of BuildInfoFactories + * @param diffAwarenessFactories + * @param allowedMissingInputs + * @param preprocessorFactorySupplier + * @param extraSkyFunctions + * @param extraPrecomputedValues + * @return an instance of the SkyframeExecutor + * @throws AbruptExitException if the executor cannot be created + */ + SkyframeExecutor create(Reporter reporter, PackageFactory pkgFactory, + TimestampGranularityMonitor tsgm, BlazeDirectories directories, + Factory workspaceStatusActionFactory, + ImmutableList<BuildInfoFactory> buildInfoFactories, + Set<Path> immutableDirectories, + Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories, + Predicate<PathFragment> allowedMissingInputs, + Preprocessor.Factory.Supplier preprocessorFactorySupplier, + ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions, + ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues) throws AbruptExitException; +} |