public void Dispose() { if (address != IntPtr.Zero) { Native_FARFilter.Delete(address); address = IntPtr.Zero; } }
public FARFilter() { address = Native_FARFilter.New(); PackageNames = new List <FName>(); PackagePaths = new List <FName>(); ObjectPaths = new List <FName>(); ClassNames = new List <FName>(); TagsAndValues = new Dictionary <FName, string>(); RecursiveClassesExclusionSet = new List <FName>(); }
public IntPtr GetAddress() { if (address == IntPtr.Zero) { return(address); } using (TArrayUnsafe <FName> packageNamesUnsafe = new TArrayUnsafe <FName>()) { packageNamesUnsafe.AddRange(PackageNames.ToArray()); Native_FARFilter.Set_PackageNames(address, packageNamesUnsafe.Address); } using (TArrayUnsafe <FName> packagePathsUnsafe = new TArrayUnsafe <FName>()) { packagePathsUnsafe.AddRange(PackagePaths.ToArray()); Native_FARFilter.Set_PackagePaths(address, packagePathsUnsafe.Address); } using (TArrayUnsafe <FName> objectPathsUnsafe = new TArrayUnsafe <FName>()) { objectPathsUnsafe.AddRange(ObjectPaths.ToArray()); Native_FARFilter.Set_ObjectPaths(address, objectPathsUnsafe.Address); } using (TArrayUnsafe <FName> classNamesUnsafe = new TArrayUnsafe <FName>()) { classNamesUnsafe.AddRange(ClassNames.ToArray()); Native_FARFilter.Set_ClassNames(address, classNamesUnsafe.Address); } using (TArrayUnsafe <FName> tagsUnsafe = new TArrayUnsafe <FName>()) using (TArrayUnsafe <string> valuesUnsafe = new TArrayUnsafe <string>()) { tagsUnsafe.AddRange(TagsAndValues.Keys.ToArray()); valuesUnsafe.AddRange(TagsAndValues.Values.ToArray()); Native_FARFilter.Set_TagsAndValues(address, tagsUnsafe.Address, valuesUnsafe.Address); } using (TArrayUnsafe <FName> recursiveClassesExclusionSet = new TArrayUnsafe <FName>()) { recursiveClassesExclusionSet.AddRange(RecursiveClassesExclusionSet.ToArray()); Native_FARFilter.Set_RecursiveClassesExclusionSet(address, recursiveClassesExclusionSet.Address); } Native_FARFilter.Set_bRecursivePaths(address, RecursivePaths); Native_FARFilter.Set_bRecursiveClasses(address, RecursiveClasses); Native_FARFilter.Set_bIncludeOnlyOnDiskAssets(address, IncludeOnlyOnDiskAssets); return(address); }