Beispiel #1
0
 public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data)
 {
     foreach (var item in data.DirectoryOutputs)
     {
         m_directoryContents[item.directoryArtifact] = item.fileArtifactArray;
     }
 }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        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);
         }
     }
 }
Beispiel #5
0
 /// <inheritdoc/>
 public virtual void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data)
 {
     ReportUnhandledEvent(data);
 }
Beispiel #6
0
 /// <inheritdoc />
 public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data)
 {
     // Just collect all the directory output data for each reported pip
     m_directoryOutputContent[data.PipId] = data;
 }
Beispiel #7
0
 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);
 }
Beispiel #8
0
 public override void PipExecutionDirectoryOutputs(PipExecutionDirectoryOutputs data)
 {
     VerifyEvent(data);
 }
Beispiel #9
0
        /// <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);
        }
Beispiel #10
0
        /// <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);
        }