// dirsearch.h -- directory searching for gold -*- C++ -*- #ifndef GOLD_DIRSEARCH_H #define GOLD_DIRSEARCH_H #include #include #include "workqueue.h" namespace gold { class General_options; // A simple interface to manage directories to be searched for // libraries. class Dirsearch { public: Dirsearch(); // Add a directory to the search path. void add(Workqueue*, const char*); // Add a list of directories to the search path. void add(Workqueue*, const General_options::Dir_list&); // Search for a file, giving one or two names to search for (the // second one may be empty). Return a full path name for the file, // or the empty string if it could not be found. This may only be // called if the token is not blocked. std::string find(const std::string&, const std::string& n2 = std::string()) const; // Return a reference to the blocker token which controls access. const Task_token& token() const { return this->token_; } private: // We can not copy this class. Dirsearch(const Dirsearch&); Dirsearch& operator=(const Dirsearch&); // Directories to search. std::list directories_; // Blocker token to control access from tasks. Task_token token_; }; } // End namespace gold. #endif // !defined(GOLD_DIRSEARCH_H)