internal static IExperimentRunner CreateExperimentRunner(IExperiment currentExperiment, TraceLab.Core.Workspaces.Workspace workspace, TraceLab.Core.Components.ComponentsLibrary library) { // Allow all nodes to send info to logs - if any targets exist. foreach (TraceLab.Core.Experiments.ExperimentNode node in currentExperiment.Vertices) { var componentNode = node as TraceLab.Core.Experiments.ComponentNode; if (componentNode != null) { foreach (TraceLab.Core.Settings.LogLevelItem item in componentNode.Data.Metadata.LogLevels) { item.IsEnabled = true; } } } RunnableNodeFactory templateGraphNodesFactory = new RunnableNodeFactory(workspace); TraceLab.Core.ExperimentExecution.RunnableExperimentBase template = GraphAdapter.Adapt(currentExperiment, templateGraphNodesFactory, library, workspace.TypeDirectories); var dispatcher = ExperimentRunnerFactory.CreateExperimentRunner(template); return(dispatcher); }
/// <summary> /// Initializes a new instance of the <see cref="DefiningBenchmarkViewModel"/> class. /// </summary> /// <param name="baseExperiment">The base experiment represents experiment based on which the benchmark is being defined.</param> public DefiningBenchmarkViewModel(Experiment baseExperiment, IEnumerable <string> benchmarksDirectories, TraceLab.Core.Components.ComponentsLibrary library, TraceLab.Core.Workspaces.Workspace workspace, IEnumerable <string> workspaceTypeDirectories, string webserviceAddress) { //initialize the model data based on base experiment m_definingBenchmark = new DefiningBenchmark(baseExperiment, library, workspace, TraceLab.Core.PackageSystem.PackageManager.Instance, workspaceTypeDirectories, webserviceAddress); Define = new DelegateCommand(ExecuteDefine, CanExecuteDefine); SelectBenchmarkPath = new DelegateCommand(DoSelectBenchmarkPath); m_benchmarksDirectories = benchmarksDirectories; //intiate authentication view model if (m_definingBenchmark.WebService != null) { m_authenticationViewModel = new AuthenticationAndUploadViewModel <ContestPublishedResponse>(m_definingBenchmark.WebService, m_definingBenchmark.ExecutePublishContest, Messages.UploadingContestToWebsite, Messages.ContestPublished); } }
public void RunExperiment(TraceLabSDK.IProgress progress, TraceLab.Core.Workspaces.Workspace workspace, ComponentsLibrary library) { m_experiment.RunExperiment(progress, workspace, library); }