internal ObservedPathEntry(AbsolutePath path, ObservedPathEntryFlags flags, string enumeratePatternRegex) { Contract.Requires(path.IsValid); Path = path; Flags = flags; EnumeratePatternRegex = enumeratePatternRegex; }
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; }
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)); }