public SealDirectoryMutablePipState(PipType piptype, long semiStableHash, PageableStoreId storeId, SealDirectoryKind sealDirectoryKind, ReadOnlyArray <StringId> patterns, bool isComposite, bool scrub) : base(piptype, semiStableHash, storeId) { SealDirectoryKind = sealDirectoryKind; Patterns = patterns; IsComposite = isComposite; Scrub = scrub; }
internal CopyMutablePipState( PipType pipType, long semiStableHash, PageableStoreId storeId, bool keepOutputWritable) : base(pipType, semiStableHash, storeId) { m_keepOutputWritable = keepOutputWritable; }
internal ProcessMutablePipState( PipType pipType, long semiStableHash, PageableStoreId storeId, ServiceInfo serviceInfo, Process.Options processOptions) : base(pipType, semiStableHash, storeId) { ServiceInfo = serviceInfo; ProcessOptions = processOptions; }
internal ProcessMutablePipState( PipType pipType, long semiStableHash, PageableStoreId storeId, ServiceInfo serviceInfo, Process.Options processOptions, int priority, int?preserveOutputsTrustLevel = null) : base(pipType, semiStableHash, storeId) { ServiceInfo = serviceInfo; ProcessOptions = processOptions; Priority = priority; PreserveOutputTrustLevel = preserveOutputsTrustLevel ?? 0; }
private void ProcessQueueItem(Pip pip, MutablePipState pipState) { ExceptionUtilities.HandleRecoverableIOException( () => { var start = Stopwatch.GetTimestamp(); PageableStoreId value = m_store.Write(writer => ((PipWriter)writer).Write(pip)); #if DEBUG m_store.Read <Pip>(value, reader => ((PipReader)reader).ReadPip()); #endif pipState.StoreId = value; GC.KeepAlive(pip); // Pip must not get GCed until after StoreId has been set. var end = Stopwatch.GetTimestamp(); Interlocked.Add(ref m_writeTicks, end - start); Interlocked.Increment(ref m_writes); }, ex => ExceptionHandling.OnFatalException(ex)); }
internal ProcessMutablePipState( PipType pipType, long semiStableHash, PageableStoreId storeId, ServiceInfo serviceInfo, Process.Options processOptions, RewritePolicy rewritePolicy, AbsolutePath executablePath, int priority, int?preserveOutputsTrustLevel = null) : base(pipType, semiStableHash, storeId) { ServiceInfo = serviceInfo; ProcessOptions = processOptions; RewritePolicy = rewritePolicy; ExecutablePath = executablePath; Priority = priority; PreserveOutputTrustLevel = preserveOutputsTrustLevel ?? 0; }
internal ProcessMutablePipState( PipType pipType, long semiStableHash, PageableStoreId storeId, ServiceInfo serviceInfo, Process.Options processOptions, RewritePolicy rewritePolicy, AbsolutePath executablePath, int priority, ModuleId moduleId, int preserveOutputsTrustLevel = 0, bool isSucceedFast = false) : base(pipType, semiStableHash, storeId) { ServiceInfo = serviceInfo; ProcessOptions = processOptions; RewritePolicy = rewritePolicy; ExecutablePath = executablePath; Priority = priority; PreserveOutputTrustLevel = preserveOutputsTrustLevel; ModuleId = moduleId; IsSucceedFast = isSucceedFast; }
/// <summary> /// Deserializes /// </summary> internal static MutablePipState Deserialize(BuildXLReader reader) { Contract.Requires(reader != null); var pipType = (PipType)reader.ReadByte(); var semiStableHash = reader.ReadInt64(); var storeId = PageableStoreId.Deserialize(reader); switch (pipType) { case PipType.Ipc: case PipType.Process: return(ProcessMutablePipState.Deserialize(reader, pipType, semiStableHash, storeId)); case PipType.CopyFile: return(CopyMutablePipState.Deserialize(reader, pipType, semiStableHash, storeId)); case PipType.SealDirectory: return(SealDirectoryMutablePipState.Deserialize(reader, pipType, semiStableHash, storeId)); default: return(new MutablePipState(pipType, semiStableHash, storeId)); } }
/// <summary> /// /// Constructor used for deserialization /// </summary> protected MutablePipState(PipType piptype, long semiStableHash, PageableStoreId storeId) { PipType = piptype; SemiStableHash = semiStableHash; StoreId = storeId; }
internal static MutablePipState Deserialize(BuildXLReader reader, PipType pipType, long semiStableHash, PageableStoreId storeId) { var sealDirectoryKind = (SealDirectoryKind)reader.ReadByte(); var patterns = reader.ReadReadOnlyArray(reader1 => reader1.ReadStringId()); var isComposite = reader.ReadBoolean(); var scrub = reader.ReadBoolean(); SealDirectoryContentFilter?contentFilter = null; if (reader.ReadBoolean()) { contentFilter = new SealDirectoryContentFilter((SealDirectoryContentFilter.ContentFilterKind)reader.ReadByte(), reader.ReadString()); } return(new SealDirectoryMutablePipState(pipType, semiStableHash, storeId, sealDirectoryKind, patterns, isComposite, scrub, contentFilter)); }
internal static MutablePipState Deserialize(BuildXLReader reader, PipType pipType, long semiStableHash, PageableStoreId storeId) { bool keepOutputWritable = reader.ReadBoolean(); return(new CopyMutablePipState(pipType, semiStableHash, storeId, keepOutputWritable)); }
internal static MutablePipState Deserialize(BuildXLReader reader, PipType pipType, long semiStableHash, PageableStoreId storeId) { ServiceInfo serviceInfo = reader.ReadNullable(ServiceInfo.InternalDeserialize); int options = reader.ReadInt32(); RewritePolicy rewritePolicy = (RewritePolicy)reader.ReadByte(); AbsolutePath executablePath = reader.ReadAbsolutePath(); int priority = reader.ReadInt32(); int preserveOutputTrustLevel = reader.ReadInt32(); ModuleId moduleId = reader.ReadModuleId(); return(new ProcessMutablePipState(pipType, semiStableHash, storeId, serviceInfo, (Process.Options)options, rewritePolicy, executablePath, priority, moduleId, preserveOutputTrustLevel)); }
internal static MutablePipState Deserialize(BuildXLReader reader, PipType pipType, long semiStableHash, PageableStoreId storeId) { ServiceInfo serviceInfo = reader.ReadNullable(ServiceInfo.InternalDeserialize); int options = reader.ReadInt32(); int priority = reader.ReadInt32(); return(new ProcessMutablePipState(pipType, semiStableHash, storeId, serviceInfo, (Process.Options)options, priority)); }