public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { // Need to save all this events to allow comparison. It might be possible to // reduce the set as an optiomization once all the failed pip imputs have been stablished // The good thing here is that there is no need at this point to convert all the paths into strings m_fileContentMap[data.FileArtifact.Path] = data; }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { m_statistics.FileArtifactContentDecidedEventCount++; if (data.FileArtifact.IsOutputFile && data.FileContentInfo.HasKnownLength) { m_statistics.FileArtifactOutputWithKnownLengthCount++; if (!m_fileSizes.ContainsKey(data.FileArtifact.Path)) { m_fileSizes.Add(data.FileArtifact.Path, data.FileContentInfo.Length); } m_producedFiles.AddOrUpdate( data.FileArtifact.Path, new OutputFile() { FileArtifact = data.FileArtifact, Hash = data.FileContentInfo.Hash }, (_, file) => { file.FileArtifact = data.FileArtifact; file.Hash = data.FileContentInfo.Hash; return(file); }); } GetWorkerAnalyzer().FileArtifactContentDecided(data); }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { // need to save all this events to allow comparison var path = ToDisplayFilePath(data.FileArtifact.Path).ToLowerInvariant(); m_fileContentMap[path] = data; }
private void FileArtifactContentDecidedInternal(FileArtifactContentDecidedEventData data) { m_statistics.FileArtifactContentDecidedEventCount++; if (data.FileArtifact.IsOutputFile && data.FileContentInfo.HasKnownLength) { m_statistics.FileArtifactOutputWithKnownLengthCount++; ContentFlags contentFlags = default; switch (data.OutputOrigin) { case PipOutputOrigin.DeployedFromCache: contentFlags = ContentFlags.MaterializedFromCache; break; case PipOutputOrigin.Produced: contentFlags = ContentFlags.Produced; break; // We ignore the following cases: // PipOutputOrigin.NotMaterialized - we cannot infer the current or future materialization status of a file // PipOutputOrigin.UpToDate - not relevant to this analyzer } UpdateOrAddFile( data.FileArtifact, data.FileContentInfo.Length, contentFlags, FromContentHash(data.FileContentInfo.Hash), data.FileArtifact.RewriteCount); m_decidedFiles.Add(data.FileArtifact); } }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { if (data.FileArtifact.Path == SpecPath) { m_writer.WriteLine("Hash: {0}", data.FileContentInfo.Hash.ToString()); m_writer.WriteLine("Size: {0}", data.FileContentInfo.Length); m_writer.WriteLine(); } }
/* * The methods below are execution log events which populate the analysis model * based on converted data for the events */ public void FileArtifactContentDecided(uint workerId, FileArtifactContentDecidedEventData data) { var convertedFileArtifact = Convert(data.FileArtifact); if (!convertedFileArtifact.Path.IsValid) { return; } ConvertedNewModel.AddFileContentInfo(workerId, convertedFileArtifact, data.FileContentInfo); }
public void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { if (data.FileArtifact.IsOutputFile && data.FileContentInfo.HasKnownLength) { if (m_deployedFiles.TryAdd(data.FileArtifact, data.FileContentInfo.Length)) { m_sizeByExtension.AddOrUpdate(data.FileArtifact.Path.GetExtension(m_analyzer.PathTable), data.FileContentInfo.Length, (k, v) => v, (k, v, u) => v + u); } AddFlag(data.FileArtifact, ContentFlag.Deployed); } }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { // before doing anything, lets skip the empty file, since it does not bring anything to the analysis if (data.FileContentInfo.Length > 0) { string extension = Path.GetExtension(data.FileArtifact.Path.ToString(CachedGraph.Context.PathTable)); m_artifactsPerExtension.Add(extension, data.FileArtifact); m_countFilesPerExtension.Add(extension, 1); m_fileContentMap[data.FileArtifact] = data.FileContentInfo; } else { m_countEmptyArtifacts.Add(data.FileArtifact, 1); } }
/// <summary> /// Override event to capture its data and store it in the protobuf /// </summary> public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { var value = data.ToFileArtifactContentDecidedEvent(WorkerID.Value, PathTable, m_nameExpander); var key = new EventKey { EventTypeID = Xldb.Proto.ExecutionEventId.FileArtifactContentDecided, FileArtifactContentDecidedKey = AbsolutePathToXldbString(data.FileArtifact.Path), FileRewriteCount = data.FileArtifact.RewriteCount }; var keyArr = key.ToByteArray(); var valueArr = value.ToByteArray(); WriteToDb(keyArr, valueArr, XldbDataStore.EventColumnFamilyName); AddToDbStorageDictionary(DBStoredTypes.FileArtifactContentDecided, keyArr.Length + valueArr.Length); }
/// <inheritdoc /> public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { m_model.AddFileContentInfo(CurrentEventWorkerId, data.FileArtifact, data.FileContentInfo); }
/// <inheritdoc /> public virtual void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { ReportUnhandledEvent(data); }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { var entry = GetEntry(data.FileArtifact); entry.Size = data.FileContentInfo.Length; }
/// <inheritdoc /> public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { m_model.FileContentMap.GetOrAdd((CurrentEventWorkerId, data.FileArtifact), data.FileContentInfo); }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { GetWorkerAnalyzer().FileArtifactContentDecided(data); }
/// <nodoc /> public static Xldb.FileArtifactContentDecidedEvent ToFileArtifactContentDecidedEvent(this FileArtifactContentDecidedEventData data, uint workerID, PathTable pathTable) { var Uuid = Guid.NewGuid().ToString(); return(new Xldb.FileArtifactContentDecidedEvent() { UUID = Uuid, WorkerID = workerID, FileArtifact = data.FileArtifact.ToFileArtifact(pathTable), FileContentInfo = new Xldb.FileContentInfo { LengthAndExistence = data.FileContentInfo.SerializedLengthAndExistence, Hash = new Xldb.ContentHash() { Value = data.FileContentInfo.Hash.ToString() } }, OutputOrigin = (Xldb.PipOutputOrigin)data.OutputOrigin }); }
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { m_fileHashes[data.FileArtifact] = data.FileContentInfo.Hash; m_fileInfos[data.FileArtifact] = data.FileContentInfo; }
/// <nodoc /> public static FileArtifactContentDecidedEvent ToFileArtifactContentDecidedEvent(this FileArtifactContentDecidedEventData data, uint workerID, PathTable pathTable) { return(new FileArtifactContentDecidedEvent() { WorkerID = workerID, FileArtifact = data.FileArtifact.ToFileArtifact(pathTable), FileContentInfo = new FileContentInfo { LengthAndExistence = data.FileContentInfo.SerializedLengthAndExistence, Hash = new ContentHash() { Value = data.FileContentInfo.Hash.ToString() } }, OutputOrigin = (PipOutputOrigin)data.OutputOrigin }); }
/// <nodoc /> public static FileArtifactContentDecidedEvent ToFileArtifactContentDecidedEvent(this FileArtifactContentDecidedEventData data, uint workerID, PathTable pathTable, NameExpander nameExpander) { return(new FileArtifactContentDecidedEvent() { WorkerID = workerID, FileArtifact = data.FileArtifact.ToFileArtifact(pathTable, nameExpander), FileContentInfo = new FileContentInfo { LengthAndExistence = new LengthAndExistence() { HasKnownLength = data.FileContentInfo.HasKnownLength, Length = data.FileContentInfo.Length, Existence = data.FileContentInfo.Existence == null ? 0 : (PathExistence)(data.FileContentInfo.Existence + 1) }, Hash = data.FileContentInfo.Hash.ToContentHash() }, OutputOrigin = (PipOutputOrigin)(data.OutputOrigin + 1) }); }
/// <summary> /// File artifact content (size, origin) is now known; create a FileTable entry for this file. /// </summary> public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) => CallSerialized(FileArtifactContentDecidedInternal, data);
public override void FileArtifactContentDecided(FileArtifactContentDecidedEventData data) { m_fileContentMap[data.FileArtifact] = data.FileContentInfo; }
public bool TryGetFileArtifactContentDecidedEventData(string path, out FileArtifactContentDecidedEventData data) { return(m_fileContentMap.TryGetValue(path, out data)); }