public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { foreach (var item in data.DirectoryOutputs) { m_directoryContents[item.directoryArtifact] = item.fileArtifactArray; } }
/// <summary> /// Override event to capture its data and store it in the protobuf /// </summary> public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { foreach (var(directoryArtifact, fileArtifactArray) in data.DirectoryOutputs) { foreach (var file in fileArtifactArray) { m_dynamicFileProducerMap.Add(file, data.PipId.Value); } var value = new PipExecutionDirectoryOutputsEvent { WorkerID = WorkerID.Value, PipID = data.PipId.Value, DirectoryArtifact = directoryArtifact.ToDirectoryArtifact(PathTable, m_nameExpander), }; value.FileArtifactArray.AddRange(fileArtifactArray.Select( file => file.ToFileArtifact(PathTable, m_nameExpander))); var key = new EventKey { EventTypeID = Xldb.Proto.ExecutionEventId.PipExecutionDirectoryOutputs, PipId = data.PipId.Value, PipExecutionDirectoryOutputKey = AbsolutePathToXldbString(directoryArtifact.Path) }; var keyArr = key.ToByteArray(); var valueArr = value.ToByteArray(); WriteToDb(keyArr, valueArr, XldbDataStore.EventColumnFamilyName); AddToDbStorageDictionary(DBStoredTypes.PipExecutionDirectoryOutputs, keyArr.Length + valueArr.Length); } }
public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { foreach (var entry in data.DirectoryOutputs) { m_dynamicContents[entry.directoryArtifact] = entry.fileArtifactArray; foreach (var file in entry.fileArtifactArray) { m_dynamicFileProducers[file] = data.PipId; } } }
public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { foreach (var kvp in data.DirectoryOutputs) { var paths = kvp.fileArtifactArray.Select(fa => fa.Path).ToList(); m_dynamicDirectoryContent[kvp.directoryArtifact] = paths; foreach (var path in paths) { m_parentOutputDirectory.Add(path, kvp.directoryArtifact); } } }
/// <inheritdoc/> public virtual void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { ReportUnhandledEvent(data); }
/// <inheritdoc /> public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { // Just collect all the directory output data for each reported pip m_directoryOutputContent[data.PipId] = data; }
public bool VerifyEquals(PipExecutionDirectoryOutputs expected, PipExecutionDirectoryOutputs actual) { XAssert.AreEqual(expected.PipId, actual.PipId); XAssert.AreSetsEqual(expected.DirectoryOutputs, actual.DirectoryOutputs, expectedResult: true, DirectoryOutputComparer.Instance); return(true); }
public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data) { VerifyEvent(data); }
/// <nodoc /> public static Xldb.PipExecutionDirectoryOutputsEvent ToPipExecutionDirectoryOutputsEvent(this PipExecutionDirectoryOutputs data, uint workerID, PathTable pathTable) { var Uuid = Guid.NewGuid().ToString(); var pipExecDirectoryOutputEvent = new Xldb.PipExecutionDirectoryOutputsEvent(); pipExecDirectoryOutputEvent.UUID = Uuid; pipExecDirectoryOutputEvent.WorkerID = workerID; foreach (var(directoryArtifact, fileArtifactArray) in data.DirectoryOutputs) { var directoryOutput = new Xldb.DirectoryOutput() { DirectoryArtifact = new Xldb.DirectoryArtifact() { IsValid = directoryArtifact.IsValid, Path = directoryArtifact.Path.ToAbsolutePath(pathTable), PartialSealID = directoryArtifact.PartialSealId, IsSharedOpaque = directoryArtifact.IsSharedOpaque } }; directoryOutput.FileArtifactArray.AddRange( fileArtifactArray.Select( file => file.ToFileArtifact(pathTable))); pipExecDirectoryOutputEvent.DirectoryOutput.Add(directoryOutput); } return(pipExecDirectoryOutputEvent); }
/// <nodoc /> public static PipExecutionDirectoryOutputsEvent ToPipExecutionDirectoryOutputsEvent(this PipExecutionDirectoryOutputs data, uint workerID, PathTable pathTable) { var pipExecDirectoryOutputEvent = new PipExecutionDirectoryOutputsEvent { WorkerID = workerID }; foreach (var(directoryArtifact, fileArtifactArray) in data.DirectoryOutputs) { var directoryOutput = new DirectoryOutput() { DirectoryArtifact = directoryArtifact.ToDirectoryArtifact(pathTable) }; directoryOutput.FileArtifactArray.AddRange( fileArtifactArray.Select( file => file.ToFileArtifact(pathTable))); pipExecDirectoryOutputEvent.DirectoryOutput.Add(directoryOutput); } return(pipExecDirectoryOutputEvent); }