diff options
Diffstat (limited to 'libs/pbd/pbd/search_path.h')
-rw-r--r-- | libs/pbd/pbd/search_path.h | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/libs/pbd/pbd/search_path.h b/libs/pbd/pbd/search_path.h index 5358d6e14c..e4c6c07847 100644 --- a/libs/pbd/pbd/search_path.h +++ b/libs/pbd/pbd/search_path.h @@ -17,35 +17,37 @@ */ -#ifndef PBD_SEARCH_PATH_INCLUDED -#define PBD_SEARCH_PATH_INCLUDED +#ifndef __libpbd_search_path_h__ +#define __libpbd_search_path_h__ #include <string> #include <vector> +#include "pbd/libpbd_visibility.h" + namespace PBD { /** - * @class SearchPath + * @class Searchpath * - * The SearchPath class is a helper class for getting a + * The Searchpath class is a helper class for getting a * vector of paths contained in a search path string where a * "search path string" contains absolute directory paths * separated by a colon(:) or a semi-colon(;) on windows. * - * The SearchPath class does not test whether the paths exist + * The Searchpath class does not test whether the paths exist * or are directories. It is basically just a container. */ -class SearchPath : public std::vector<std::string> +class LIBPBD_TEMPLATE_API Searchpath : public std::vector<std::string> { public: /** - * Create an empty SearchPath. + * Create an empty Searchpath. */ - SearchPath (); + LIBPBD_TEMPLATE_MEMBER_API Searchpath (); /** - * Initialize SearchPath from a string where the string contains + * Initialize Searchpath from a string where the string contains * one or more absolute paths to directories which are delimited * by a path separation character. The path delimeter is a * colon(:) on unix and a semi-colon(;) on windows. @@ -55,15 +57,17 @@ public: * * @param search_path A path string. */ - SearchPath (const std::string& search_path); + LIBPBD_TEMPLATE_MEMBER_API Searchpath (const std::string& search_path); /** - * Initialize SearchPath from a vector of paths that may or may + * Initialize Searchpath from a vector of paths that may or may * not exist. * * @param paths A vector of paths. */ - SearchPath (const std::vector<std::string>& paths); + LIBPBD_TEMPLATE_MEMBER_API Searchpath (const std::vector<std::string>& paths); + + LIBPBD_TEMPLATE_MEMBER_API ~Searchpath () {}; /** * @return a search path string. @@ -71,41 +75,44 @@ public: * The string that is returned contains the platform specific * path separator. */ - const std::string to_string () const; + LIBPBD_TEMPLATE_MEMBER_API const std::string to_string () const; /** * Add all the directories in path to this. */ - SearchPath& operator+= (const SearchPath& spath); + LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+= (const Searchpath& spath); /** * Add another directory path to the search path. */ - SearchPath& operator+= (const std::string& directory_path); + LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+= (const std::string& directory_path); /** - * Concatenate another SearchPath onto this. + * Concatenate another Searchpath onto this. */ - SearchPath& operator+ (const SearchPath& other); + LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+ (const Searchpath& other); /** * Add another path to the search path. */ - SearchPath& operator+ (const std::string& directory_path); + LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+ (const std::string& directory_path); /** * Add a sub-directory to each path in the search path. * @param subdir The directory name, it should not contain * any path separating tokens. */ - SearchPath& add_subdirectory_to_paths (const std::string& subdir); + LIBPBD_TEMPLATE_MEMBER_API Searchpath& add_subdirectory_to_paths (const std::string& subdir); protected: - void add_directory (const std::string& directory_path); - void add_directories (const std::vector<std::string>& paths); + LIBPBD_TEMPLATE_MEMBER_API void add_directory (const std::string& directory_path); + LIBPBD_TEMPLATE_MEMBER_API void add_directories (const std::vector<std::string>& paths); }; +LIBPBD_API void export_search_path (const std::string& base_dir, const char* varname, const char* dir); + + } // namespace PBD -#endif +#endif /* __libpbd_search_path_h__ */ |