- Class limes::files::Directory
- getNonexistentChild()
- Member limes::files::Directory::iterateAllChildren (FileCallback &&fileCallback, DirectoryCallback &&directoryCallback, SymLinkCallback &&symLinkCallback, bool recurse=true, bool includeHiddenFiles=true) const
- test coverage
- Member limes::files::Directory::iterateAllChildren (FilesystemEntryCallback &&callback, bool recurse=true, bool includeHiddenFiles=true) const
- test coverage
- Member limes::files::Directory::iterateDirectories (DirectoryCallback &&callback, bool recurse=true, bool includeHiddenFiles=true) const
- test coverage
- Member limes::files::Directory::iterateFiles (FileCallback &&callback, bool recurse=true, bool includeHiddenFiles=true) const
- test coverage
- Member limes::files::Directory::iterateSymLinks (SymLinkCallback &&callback, bool recurse=true, bool includeHiddenFiles=true) const
- test coverage
- Member limes::files::Directory::operator= (const Path &newPath)
- test coverage
- Member limes::files::Directory::setAsWorkingDirectory () const
- test coverage
- Class limes::files::DynamicLibrary
function to check if dynamic libraries are supported by the current system
function to add a directory to the search paths for DLLs?
use emscripten_dlopen when building with Emscripten. Note that this function is asynchronous, however.
double check iOS. I've heard that iOS disallows calling dlopen()
.
- Member limes::files::DynamicLibrary::getFile () const
- Emscripten implementation
- Class limes::files::File
start as process
get user/group ID of owner?
- Member limes::files::File::duplicate () const noexcept
- test coverage
- Member limes::files::File::getInputStream () const
- test coverage
- Member limes::files::File::getOutputStream () const
- test coverage
- Member limes::files::File::operator= (const std::string_view &newPath)
- test coverage
- Member limes::files::File::operator= (const Path &newPath)
- test coverage
- Member limes::files::File::replaceFileExtension (const std::string_view &newFileExtension, bool renameOnDisk=true)
- test coverage
- Class limes::files::FilesystemEntry
getNonexistentSibling()
getCreationTime(), getLastAccessTime()
tests for getModificationTime(), getCreationTime(), getLastAccessTime()
- Member limes::files::FilesystemEntry::createIfDoesntExist () const noexcept
- test coverage for directories and symlinks
- Member limes::files::FilesystemEntry::getAbsolutePath (bool makePreferred=false) const noexcept
- test coverage for makePreferred=true
- Member limes::files::FilesystemEntry::getDirectoryObject () const noexcept
- test coverage for nullopt case
- Member limes::files::FilesystemEntry::getFileObject () const noexcept
- test coverage for nullopt case
- Member limes::files::FilesystemEntry::getLastModificationTime () const noexcept
- test coverage
- Member limes::files::FilesystemEntry::getPath (bool makePreferred=false) const noexcept
- test coverage for makePreferred=true
- Member limes::files::FilesystemEntry::getSymLinkObject () const noexcept
- better test coverage for function's internal branches
- Member limes::files::FilesystemEntry::isBelow (const Directory &directory, std::size_t depthLimit=50) const
- test coverage for false case
- Member limes::files::FilesystemEntry::makeAbsoluteRelativeTo (const Path &basePath) noexcept
- test coverage – should return false if basePath is not absolute
- Member limes::files::FilesystemEntry::operator bool () const noexcept
- test coverage
- Member limes::files::FilesystemEntry::operator/ (const std::string_view &subpathName) const
- test coverage
- Member limes::files::FilesystemEntry::operator/= (const std::string_view &subpathName)
- test coverage
- Member limes::files::FilesystemEntry::operator< (const FilesystemEntry &other) const noexcept
- test coverage
- Member limes::files::FilesystemEntry::operator= (const Path &newPath)
- test coverage (for all 3)
- Member limes::files::FilesystemEntry::operator== (const FilesystemEntry &other) const noexcept
- test coverage for overloads accepting a Path argument
- Member limes::files::FilesystemEntry::touch () const
- test coverage
- Class limes::files::FileWatcher
how to test this class? A test would basically need to check that the proper callbacks are indeed called when a watched file is mutated. Is this even possible?
iOS, Android and Emscripten implementations. This class requires platform-specific code, probably JNI for Android and Swift/ObjC for iOS. Is this class possible to implement for Emscripten?
- Member limes::files::maxPathLength () noexcept
- query the actual underlying filesystem for this?
- Member limes::files::PATHseparator () noexcept
- is there a way to actually query the underlying filesystem for this?
- Member limes::files::Permissions::getStdPerms () const noexcept
- test coverage
- Member limes::files::Permissions::hasStickyBit () const noexcept
- test coverage
- Member limes::files::Permissions::othersAll () noexcept
- test coverage
- Member limes::files::Permissions::toString () const
- test coverage for unknown/empty case
- Member limes::files::Permissions::withAll (Scope s=Scope::All) const noexcept
- test coverage
- Member limes::files::Permissions::withStickyBit () const noexcept
- test coverage
- Member limes::files::SymLink::follow (std::size_t recursionDepth=50) const noexcept
- protection from cycles? The recursion depth helps, but we could throw an exception if a cycle begins (one of the targets is the same as one of the previous targets). This would require storing the previously visited targets in memory, so the question becomes if this is worth it.
- Class limes::files::TempFile
- unit tests
- Class limes::files::Volume
ConstructionError custom exception type? This could allow more specific error checking. The error could contain the original passed path.
supportsHardLinks()?
- Member limes::files::Volume::getLabel () const
- test coverage
- Member limes::files::Volume::getSerialNumber () const
- test coverage
- Member limes::files::Volume::getType () const
Linux: detect RAM type
Mac: detect RAM & Network types
- Member limes::files::Volume::operator!= (const Volume &other) const noexcept
- test coverage
- Module limes_files
get all CI builds working
remove internal dependencies on exceptions (Emscripten tests)
CLI app
Android support
MemoryMappedFile class
FileSearchPath class and/or glob() function
- Module limes_files_special_dirs
more special dirs
Android implementations. None of these functions are implemented for Android, it will probably require some native JNI code.