* limitations under the License.
*/
-#ifndef FOLLY_SYMBOLIZER_ELFCACHE_H_
-#define FOLLY_SYMBOLIZER_ELFCACHE_H_
+#pragma once
#include <cstring>
#include <limits.h> // for PATH_MAX
#include <boost/intrusive/list.hpp>
#include <glog/logging.h>
+#include <folly/Hash.h>
+#include <folly/Range.h>
#include <folly/experimental/symbolizer/Elf.h>
namespace folly { namespace symbolizer {
+/**
+ * Number of ELF files loaded by the dynamic loader.
+ */
+size_t countLoadedElfFiles();
+
class ElfCacheBase {
public:
virtual std::shared_ptr<ElfFile> getFile(StringPiece path) = 0;
static std::shared_ptr<ElfFile> filePtr(const std::shared_ptr<Entry>& e);
size_t capacity_;
- std::unordered_map<
- StringPiece,
- std::shared_ptr<Entry>,
- StringPieceHash> files_;
+ std::unordered_map<StringPiece, std::shared_ptr<Entry>, Hash> files_;
typedef boost::intrusive::list<
Entry,
};
}} // namespaces
-
-#endif /* FOLLY_SYMBOLIZER_ELFCACHE_H_ */