Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 internal CopyMutablePipState(
     PipType pipType,
     long semiStableHash,
     PageableStoreId storeId,
     bool keepOutputWritable)
     : base(pipType, semiStableHash, storeId)
 {
     m_keepOutputWritable = keepOutputWritable;
 }
Esempio n. 3
0
 internal ProcessMutablePipState(
     PipType pipType,
     long semiStableHash,
     PageableStoreId storeId,
     ServiceInfo serviceInfo,
     Process.Options processOptions)
     : base(pipType, semiStableHash, storeId)
 {
     ServiceInfo    = serviceInfo;
     ProcessOptions = processOptions;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
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));
        }
Esempio n. 6
0
 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;
 }
Esempio n. 7
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;
 }
Esempio n. 8
0
        /// <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));
            }
        }
Esempio n. 9
0
 /// <summary>
 /// /// Constructor used for deserialization
 /// </summary>
 protected MutablePipState(PipType piptype, long semiStableHash, PageableStoreId storeId)
 {
     PipType        = piptype;
     SemiStableHash = semiStableHash;
     StoreId        = storeId;
 }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
        internal static MutablePipState Deserialize(BuildXLReader reader, PipType pipType, long semiStableHash, PageableStoreId storeId)
        {
            bool keepOutputWritable = reader.ReadBoolean();

            return(new CopyMutablePipState(pipType, semiStableHash, storeId, keepOutputWritable));
        }
Esempio n. 12
0
        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));
        }
Esempio n. 13
0
        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));
        }