LLVM 22.0.0git
llvm::orc::LibraryManager Class Reference

Manages library metadata and state for symbol resolution. More...

#include "llvm/ExecutionEngine/Orc/TargetProcess/LibraryResolver.h"

Classes

class  FilteredView
 A read-only view of libraries filtered by state and kind. More...
class  LibraryInfo

Public Types

enum class  LibState : uint8_t { Unloaded = 0 , Loaded = 1 , Queried = 2 }
using LibraryVisitor = std::function<bool(const LibraryInfo &)>

Public Member Functions

 LibraryManager ()=default
 ~LibraryManager ()=default
bool addLibrary (std::string Path, PathType Kind, std::optional< BloomFilter > Filter=std::nullopt)
bool hasLibrary (StringRef Path) const
void removeLibrary (StringRef Path)
void markLoaded (StringRef Path)
void markQueried (StringRef Path)
std::shared_ptr< LibraryInfogetLibrary (StringRef Path)
FilteredView getView (LibState S, PathType K) const
void forEachLibrary (const LibraryVisitor &visitor) const
bool isLoaded (StringRef Path) const
bool isQueried (StringRef Path) const
void clear ()

Detailed Description

Manages library metadata and state for symbol resolution.

Tracks libraries by load state and kind (user/system), and stores associated Bloom filters and hash maps to speed up symbol lookups. Thread-safe for concurrent access.

Definition at line 34 of file LibraryResolver.h.

Member Typedef Documentation

◆ LibraryVisitor

Definition at line 159 of file LibraryResolver.h.

Member Enumeration Documentation

◆ LibState

Enumerator
Unloaded 
Loaded 
Queried 

Definition at line 36 of file LibraryResolver.h.

Constructor & Destructor Documentation

◆ LibraryManager()

llvm::orc::LibraryManager::LibraryManager ( )
default

◆ ~LibraryManager()

llvm::orc::LibraryManager::~LibraryManager ( )
default

Member Function Documentation

◆ addLibrary()

bool llvm::orc::LibraryManager::addLibrary ( std::string Path,
PathType Kind,
std::optional< BloomFilter > Filter = std::nullopt )
inline

Definition at line 164 of file LibraryResolver.h.

References llvm::Filter, and Unloaded.

◆ clear()

void llvm::orc::LibraryManager::clear ( )
inline

Definition at line 236 of file LibraryResolver.h.

◆ forEachLibrary()

void llvm::orc::LibraryManager::forEachLibrary ( const LibraryVisitor & visitor) const
inline

Definition at line 214 of file LibraryResolver.h.

References _.

◆ getLibrary()

std::shared_ptr< LibraryInfo > llvm::orc::LibraryManager::getLibrary ( StringRef Path)
inline

Definition at line 202 of file LibraryResolver.h.

◆ getView()

FilteredView llvm::orc::LibraryManager::getView ( LibState S,
PathType K ) const
inline

Definition at line 209 of file LibraryResolver.h.

◆ hasLibrary()

bool llvm::orc::LibraryManager::hasLibrary ( StringRef Path) const
inline

Definition at line 175 of file LibraryResolver.h.

◆ isLoaded()

bool llvm::orc::LibraryManager::isLoaded ( StringRef Path) const
inline

Definition at line 222 of file LibraryResolver.h.

References Loaded.

◆ isQueried()

bool llvm::orc::LibraryManager::isQueried ( StringRef Path) const
inline

Definition at line 229 of file LibraryResolver.h.

References Queried.

◆ markLoaded()

void llvm::orc::LibraryManager::markLoaded ( StringRef Path)
inline

Definition at line 190 of file LibraryResolver.h.

References Loaded.

◆ markQueried()

void llvm::orc::LibraryManager::markQueried ( StringRef Path)
inline

Definition at line 196 of file LibraryResolver.h.

References Queried.

◆ removeLibrary()

void llvm::orc::LibraryManager::removeLibrary ( StringRef Path)
inline

Definition at line 182 of file LibraryResolver.h.

References I.


The documentation for this class was generated from the following file: