diff options
author | Jan Korous <jkorous@apple.com> | 2019-07-12 20:34:10 +0000 |
---|---|---|
committer | Jan Korous <jkorous@apple.com> | 2019-07-12 20:34:10 +0000 |
commit | 7c4c2b4cd2c62a40a9c29f2168831b001d751896 (patch) | |
tree | 842f6c4208cb66621a5cddcc48f69812c3d3ea41 /lib/DirectoryWatcher/DirectoryScanner.h | |
parent | de63fff9046d6771c5093d36f2e83ec4e9721153 (diff) | |
download | clang-7c4c2b4cd2c62a40a9c29f2168831b001d751896.tar.gz |
Reland [clang] DirectoryWatcher
This reverts commit f561227d133224d2d6a5a016abe4be051fa75501.
- DirectoryWatcher
- Fix the build for platforms that don't have DW implementated.
- Fix the threading dependencies (thanks to compnerd).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365954 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/DirectoryWatcher/DirectoryScanner.h')
-rw-r--r-- | lib/DirectoryWatcher/DirectoryScanner.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/DirectoryWatcher/DirectoryScanner.h b/lib/DirectoryWatcher/DirectoryScanner.h new file mode 100644 index 0000000000..55731225e2 --- /dev/null +++ b/lib/DirectoryWatcher/DirectoryScanner.h @@ -0,0 +1,29 @@ +//===- DirectoryScanner.h - Utility functions for DirectoryWatcher --------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "clang/DirectoryWatcher/DirectoryWatcher.h" +#include "llvm/Support/FileSystem.h" +#include <string> +#include <vector> + +namespace clang { + +/// Gets names (filenames) of items in directory at \p Path. +/// \returns empty vector if \p Path is not a directory, doesn't exist or can't +/// be read from. +std::vector<std::string> scanDirectory(llvm::StringRef Path); + +/// Create event with EventKind::Added for every element in \p Scan. +std::vector<DirectoryWatcher::Event> +getAsFileEvents(const std::vector<std::string> &Scan); + +/// Gets status of file (or directory) at \p Path. +/// \returns llvm::None if \p Path doesn't exist or can't get the status. +llvm::Optional<llvm::sys::fs::file_status> getFileStatus(llvm::StringRef Path); + +} // namespace clang
\ No newline at end of file |