2 #include <boost/version.hpp> 5 #define __has_include(x) 0 7 #if (__has_include(<boost/filesystem.hpp>) || defined(ICEDB_HAS_COMPILED_BOOST_FILESYSTEM)) && (!ICEDB_PROHIBIT_BOOST_FILESYSTEM) && (BOOST_VERSION > 104400) 8 # define have_boost_filesystem 1 9 # include <boost/filesystem.hpp> 10 namespace sfs = boost::filesystem;
11 #elif __has_include(<filesystem>) 13 # include <filesystem> 14 # define have_std_filesystem 1 15 # define experimental_filesystem 16 namespace sfs = std::experimental::filesystem::v1;
18 #elif __has_include(<experimental/filesystem>) 19 # include <experimental/filesystem> 20 # define have_std_filesystem 1 21 # define experimental_filesystem 22 namespace sfs = std::experimental::filesystem::v1;
24 # error("This library either requires boost::filesystem v3 or a recent compiler that supports the C++ 2017 filesystem library."); 49 const sfs::path &base,
50 const ExtensionsMatching_Type &fileExtensionsToMatch = common_hdf5_extensions);
CollectedFilesRet_Type collectDatasetFiles(const sfs::path &base, const ExtensionsMatching_Type &valid_extensions)
sfs::path resolveSymLinks(const sfs::path &base)
Finds out where a symbolic link points to.
sfs::path resolveSymlinkPathandForceExists(const std::string &location)
Like resolveSymLinks, but throw if the resulting path does not exist.
std::set< sfs::path > ExtensionsMatching_Type
std::vector< std::pair< sfs::path, std::string > > CollectedFilesRet_Type
File path, relative mount point.
const ExtensionsMatching_Type common_hdf5_extensions
CollectedFilesRet_Type collectActualHDF5files(const sfs::path &pBaseS)
Like collectDatasetFiles for HDF5 files, but then check that these files are, indeed, HDF5 files.
std::string getUniqueVROOTname()
Generate a unique string, used in memort-only HDF5 file trees.