diff options
author | Ian Lance Taylor <iant@google.com> | 2006-08-04 23:10:59 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2006-08-04 23:10:59 +0000 |
commit | bae7f79e03d6405f5ceec0e3e24671e6b30f29ed (patch) | |
tree | 4b9df8c6433411b45963dd75e3a6dcad9a22518e /gold/dirsearch.h | |
parent | c17d87de17351aed016a9d0b0712cdee4cca5f9e (diff) | |
download | binutils-gdb-bae7f79e03d6405f5ceec0e3e24671e6b30f29ed.tar.gz |
Initial CVS checkin of gold
Diffstat (limited to 'gold/dirsearch.h')
-rw-r--r-- | gold/dirsearch.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/gold/dirsearch.h b/gold/dirsearch.h new file mode 100644 index 00000000000..3beb1436c5a --- /dev/null +++ b/gold/dirsearch.h @@ -0,0 +1,56 @@ +// dirsearch.h -- directory searching for gold -*- C++ -*- + +#ifndef GOLD_DIRSEARCH_H +#define GOLD_DIRSEARCH_H + +#include <string> +#include <list> + +#include "options.h" +#include "workqueue.h" + +namespace gold +{ + +// 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<const char*> directories_; + // Blocker token to control access from tasks. + Task_token token_; +}; + +} // End namespace gold. + +#endif // !defined(GOLD_DIRSEARCH_H) |