|
| | TDirectoryTree () |
| |
| | TDirectoryTree (const TDirectoryTree &Other)=default |
| |
| TDirectoryTree & | operator= (const TDirectoryTree &Other)=default |
| |
| | TDirectoryTree (TDirectoryTree &&Other)=default |
| |
| TDirectoryTree & | operator= (TDirectoryTree &&Other)=default |
| |
| ValueType & | FindOrAdd (FStringView Path, bool *bOutExisted=nullptr) |
| |
| void | Empty () |
| |
| void | Remove (FStringView Path, bool *bOutExisted=nullptr) |
| |
| void | Shrink () |
| |
| bool | IsEmpty () const |
| |
| int32 | Num () const |
| |
| SIZE_T | GetAllocatedSize () const |
| |
| bool | Contains (FStringView Path) const |
| |
| const ValueType * | Find (FStringView Path) const |
| |
| ValueType * | Find (FStringView Path) |
| |
| bool | ContainsPathOrParent (FStringView Path) const |
| |
| const ValueType * | FindClosestValue (FStringView Path) const |
| |
| ValueType * | FindClosestValue (FStringView Path) |
| |
| bool | TryFindClosestPath (FStringView Path, FStringBuilderBase &OutPath, const ValueType **OutValue=nullptr) const |
| |
| bool | TryFindClosestPath (FStringView Path, FStringBuilderBase &OutPath, ValueType **OutValue) |
| |
| bool | TryFindClosestPath (FStringView Path, FString &OutPath, const ValueType **OutValue=nullptr) const |
| |
| bool | TryFindClosestPath (FStringView Path, FString &OutPath, ValueType **OutValue) |
| |
| bool | ContainsChildPaths (FStringView Path) const |
| |
| bool | TryGetChildren (FStringView Path, TArray< FString > &OutRelativeChildNames, EDirectoryTreeGetFlags Flags=EDirectoryTreeGetFlags::None) const |
| |
| FIterator | begin () |
| |
| FConstIterator | begin () const |
| |
| FIterationSentinel | end () const |
| |
| FIterator | CreateIterator () |
| |
| FConstIterator | CreateConstIterator () const |
| |
| FPointerIterator | CreateIteratorForImplied () |
| |
| FConstPointerIterator | CreateConstIteratorForImplied () const |
| |
template<
typename ValueType>
class TDirectoryTree< ValueType >
Container for path -> value that can efficiently report whether a parent directory of a given path exists. Supports relative and absolute paths. Supports LongPackageNames and LocalPaths.
Note about Value comparisons: Case-insensitive / is treated as equal to \ Presence or absence of terminating separator (/) is ignored in the comparison. Directory elements of . and .. are currently not interpreted and are treated as literal characters. Callers should not rely on this behavior as it may be corrected in the future. callers should instead conform the paths before calling. Relative paths and absolute paths are not resolved, and relative paths will never equal absolute paths. Callers should not rely on this behavior as it may be corrected in the future; callers should instead conform the paths before calling.
For functions that find parent paths, parent paths are only discovered if they are conformed to the same format as the given path: both paths must be either relative or absolute.
For functions that return Values by reference or by pointer, that reference or pointer can be invalidated by any functions that modify the tree, and should be discarded before calling any such functions.
Some functions that report results for directories behave differently for added directories versus implied directories. An added directory is one that was added specifically via FindOrAdd or other mutators. An implied directory is a directory that is not added, but that has a child path that is added to the tree.