X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffs%2Futils.h;h=9c4bb5ca47fdeed1035a341d5e06e2bac54b00f8;hb=5d3a5019399f97af0371f4fd6dc415d36de6ac3a;hp=a52e37d8ed6f3321c748d5df793ce58c77b700e3;hpb=e4584bf621f6ef457a944c7604888b4132ad1706;p=libs%2Fcore.git diff --git a/source/fs/utils.h b/source/fs/utils.h index a52e37d..9c4bb5c 100644 --- a/source/fs/utils.h +++ b/source/fs/utils.h @@ -1,49 +1,51 @@ #ifndef MSP_FS_UTILS_H_ #define MSP_FS_UTILS_H_ +#include #include "path.h" namespace Msp { namespace FS { /// Extracts the last component of the path. -std::string basename(const Path &); +MSPCORE_API std::string basename(const Path &); /// Removes the last component from the path. -Path dirname(const Path &); +MSPCORE_API Path dirname(const Path &); /** Returns the base part of a filename. This includes everything up to the last dot, but not the dot itself. */ -std::string basepart(const std::string &); +MSPCORE_API std::string basepart(const std::string &); /** Returns the extension part of a filename. This includes the last dot and everything after it. */ -std::string extpart(const std::string &); +MSPCORE_API std::string extpart(const std::string &); /// Fixes the case of a path to match files / directories on the filesystem. -Path fix_case(const Path &path); +MSPCORE_API Path fix_case(const Path &path); /// Reads the contents of a symbolic link -Path readlink(const Path &path); +MSPCORE_API Path readlink(const Path &path); /// Resolves all symlinks from a path. Will always return an absolute path. -Path realpath(const Path &path); +MSPCORE_API Path realpath(const Path &path); /// Removes a file -void unlink(const Path &path); +MSPCORE_API void unlink(const Path &path); /// Renames a file. Existing file, if any, is overwritten. -void rename(const Path &from, const Path &to); +MSPCORE_API void rename(const Path &from, const Path &to); -/// Makes a path relative to some base path. That is, base/result==path. -Path relative(const Path &path, const Path &base); +/** Makes a path relative to some base path. That is, base/result==path. Both +paths must be either absolute or relative. */ +MSPCORE_API Path relative(const Path &path, const Path &base); /// Returns the longest prefix shared by both paths. -Path common_ancestor(const Path &, const Path &); +MSPCORE_API Path common_ancestor(const Path &, const Path &); /** Determines how many levels a path is below another. Returns -1 if path is -not a descendant of parent. */ -int descendant_depth(const Path &path, const Path &parent); +not a descendant of parent. Both paths must be either absolute or relative. */ +MSPCORE_API int descendant_depth(const Path &path, const Path &parent); } // namespace FS } // namespace Msp