/// <summary> /// Deserialize /// </summary> internal static ModulePip InternalDeserialize(PipReader reader) { return(new ModulePip( module: reader.ReadModuleId(), identity: reader.ReadStringId(), version: reader.ReadStringId(), location: LocationData.Deserialize(reader), resolverKind: reader.ReadStringId(), resolverName: reader.ReadStringId() )); }
/// <nodoc /> internal static IpcClientInfo Deserialize(PipReader reader) { var moniker = reader.ReadStringId(); var config = ClientConfig.Deserialize(reader); return(new IpcClientInfo(moniker, config)); }
internal static ProcessSemaphoreInfo Deserialize(PipReader reader) { Contract.Requires(reader != null); StringId name = reader.ReadStringId(); int value = reader.ReadInt32Compact(); int limit = reader.ReadInt32Compact(); return(new ProcessSemaphoreInfo(name, value, limit)); }
internal static Process InternalDeserialize(PipReader reader) { return(new Process( executable: reader.ReadFileArtifact(), workingDirectory: reader.ReadAbsolutePath(), arguments: reader.ReadPipData(), responseFile: reader.ReadFileArtifact(), responseFileData: reader.ReadPipData(), environmentVariables: reader.ReadReadOnlyArray(reader1 => ((PipReader)reader1).ReadEnvironmentVariable()), standardInput: StandardInput.InternalDeserialize(reader), standardOutput: reader.ReadFileArtifact(), standardError: reader.ReadFileArtifact(), standardDirectory: reader.ReadAbsolutePath(), warningTimeout: reader.ReadNullableStruct(reader1 => reader1.ReadTimeSpan()), timeout: reader.ReadNullableStruct(reader1 => reader1.ReadTimeSpan()), dependencies: reader.ReadReadOnlyArray(reader1 => reader1.ReadFileArtifact()), outputs: reader.ReadReadOnlyArray(reader1 => reader1.ReadFileArtifactWithAttributes()), directoryDependencies: reader.ReadReadOnlyArray(reader1 => reader1.ReadDirectoryArtifact()), directoryOutputs: reader.ReadReadOnlyArray(reader1 => reader1.ReadDirectoryArtifact()), orderDependencies: reader.ReadReadOnlyArray(reader1 => ((PipReader)reader1).ReadPipId()), untrackedPaths: reader.ReadReadOnlyArray(reader1 => reader1.ReadAbsolutePath()), untrackedScopes: reader.ReadReadOnlyArray(reader1 => reader1.ReadAbsolutePath()), tags: reader.ReadReadOnlyArray(reader1 => reader1.ReadStringId()), successExitCodes: reader.ReadReadOnlyArray(reader1 => reader1.ReadInt32()), semaphores: reader.ReadReadOnlyArray(reader1 => ((PipReader)reader1).ReadProcessSemaphoreInfo()), provenance: reader.ReadPipProvenance(), toolDescription: reader.ReadStringId(), additionalTempDirectories: reader.ReadReadOnlyArray(reader1 => reader1.ReadAbsolutePath()), warningRegex: reader.ReadRegexDescriptor(), errorRegex: reader.ReadRegexDescriptor(), enableMultiLineErrorScanning: reader.ReadBoolean(), uniqueOutputDirectory: reader.ReadAbsolutePath(), uniqueRedirectedDirectoryRoot: reader.ReadAbsolutePath(), tempDirectory: reader.ReadAbsolutePath(), options: (Options)reader.ReadInt32(), serviceInfo: reader.ReadNullable(reader1 => ServiceInfo.InternalDeserialize(reader1)), retryExitCodes: reader.ReadReadOnlyArray(r => r.ReadInt32()), allowedSurvivingChildProcessNames: reader.ReadReadOnlyArray(reader1 => reader1.ReadPathAtom()), nestedProcessTerminationTimeout: reader.ReadNullableStruct(reader1 => reader1.ReadTimeSpan()), absentPathProbeMode: (AbsentPathProbeInUndeclaredOpaquesMode)reader.ReadByte(), doubleWritePolicy: (DoubleWritePolicy)reader.ReadByte(), containerIsolationLevel: (ContainerIsolationLevel)reader.ReadByte(), weight: reader.ReadInt32Compact(), priority: reader.ReadInt32Compact(), preserveOutputWhitelist: reader.ReadReadOnlyArray(r => r.ReadAbsolutePath()), changeAffectedInputListWrittenFile: reader.ReadFileArtifact(), preserveOutputsTrustLevel: reader.ReadInt32(), childProcessesToBreakawayFromSandbox: reader.ReadReadOnlyArray(reader1 => reader1.ReadPathAtom()) )); }
/// <nodoc /> internal static EnvironmentVariable Deserialize(PipReader reader) { Contract.Requires(reader != null); StringId name = reader.ReadStringId(); if (name.IsValid) { PipData value = reader.ReadPipData(); bool isPassThrough = reader.ReadBoolean(); Contract.Assume(value.IsValid ^ isPassThrough); return(new EnvironmentVariable(name, value, isPassThrough)); } else { return(default(EnvironmentVariable)); } }
internal static PipProvenance Deserialize(PipReader reader) { Contract.Requires(reader != null); long semiStableHash = reader.ReadInt64(); ModuleId moduleId = reader.ReadModuleId(); StringId moduleName = reader.ReadStringId(); FullSymbol outputValueName = reader.ReadFullSymbol(); LocationData token = reader.ReadLocationData(); QualifierId qualifierId = new QualifierId(reader.ReadInt32Compact()); PipData usage = reader.ReadPipData(); return(new PipProvenance( semiStableHash, moduleId, moduleName, outputValueName, token, qualifierId, usage)); }
internal static PipData Deserialize(PipReader reader) { Contract.Requires(reader != null); var entriesStringId = reader.ReadStringId(); PipDataEntry headerEntry; PipDataEntryList entries; if (entriesStringId.IsValid) { headerEntry = PipDataEntry.Deserialize(reader); // Use the string table to get the raw bytes to back the entries entries = new PipDataEntryList(reader.Store.StringTable.GetBytes(entriesStringId)); } else { var count = reader.ReadInt32Compact(); if (count == 0) { return(Invalid); } headerEntry = PipDataEntry.Deserialize(reader); var entriesArray = new PipDataEntry[count]; for (int i = 0; i < count; i++) { entriesArray[i] = PipDataEntry.Deserialize(reader); } entries = PipDataEntryList.FromEntries(entriesArray); } Contract.Assume(headerEntry.EntryType == PipDataEntryType.NestedDataHeader); Contract.Assume(headerEntry.Escaping != PipDataFragmentEscaping.Invalid); return(new PipData(headerEntry, entries, entriesStringId)); }