예제 #1
0
        internal ObservedPathEntry(AbsolutePath path, ObservedPathEntryFlags flags, string enumeratePatternRegex)
        {
            Contract.Requires(path.IsValid);

            Path  = path;
            Flags = flags;
            EnumeratePatternRegex = enumeratePatternRegex;
        }
예제 #2
0
        public ObservedPathEntry(AbsolutePath path, bool isSearchPathEnumeration, bool isDirectoryPath, bool isDirectoryEnumeration, string enumeratePatternRegex, bool isFileProbe)
        {
            Contract.Requires(path.IsValid);

            Path   = path;
            Flags  = ObservedPathEntryFlags.None;
            Flags |= isFileProbe ? ObservedPathEntryFlags.FileProbe : ObservedPathEntryFlags.None;
            Flags |= isSearchPathEnumeration ? ObservedPathEntryFlags.IsSearchPath : ObservedPathEntryFlags.None;
            Flags |= isDirectoryPath ? ObservedPathEntryFlags.IsDirectoryPath : ObservedPathEntryFlags.None;
            Flags |= isDirectoryEnumeration ? ObservedPathEntryFlags.DirectoryEnumeration : ObservedPathEntryFlags.None;
            if (enumeratePatternRegex != null)
            {
                Flags |= string.Equals(enumeratePatternRegex, RegexDirectoryMembershipFilter.AllowAllRegex, StringComparison.OrdinalIgnoreCase) ? ObservedPathEntryFlags.DirectoryEnumerationWithAllPattern : ObservedPathEntryFlags.DirectoryEnumerationWithCustomPattern;
            }

            EnumeratePatternRegex = enumeratePatternRegex;
        }
예제 #3
0
        public static ObservedPathEntry Deserialize(BuildXLReader reader)
        {
            AbsolutePath           path  = reader.ReadAbsolutePath();
            ObservedPathEntryFlags flags = (ObservedPathEntryFlags)reader.ReadByte();
            string enumeratePatternRegex = null;

            if ((flags & ObservedPathEntryFlags.DirectoryEnumerationWithCustomPattern) != 0)
            {
                enumeratePatternRegex = reader.ReadString();
            }
            else if ((flags & ObservedPathEntryFlags.DirectoryEnumerationWithAllPattern) != 0)
            {
                enumeratePatternRegex = RegexDirectoryMembershipFilter.AllowAllRegex;
            }

            return(new ObservedPathEntry(path, flags, enumeratePatternRegex));
        }