clang 23.0.0git
clang::ModuleCache Class Referenceabstract

The module cache used for compiling modules implicitly. More...

#include "clang/Serialization/ModuleCache.h"

Public Member Functions

virtual std::unique_ptr< llvm::AdvisoryLock > getLock (StringRef ModuleFilename)=0
 Returns lock for the given module file. The lock is initially unlocked.
virtual std::time_t getModuleTimestamp (StringRef ModuleFilename)=0
 Returns the timestamp denoting the last time inputs of the module file were validated.
virtual void updateModuleTimestamp (StringRef ModuleFilename)=0
 Updates the timestamp denoting the last time inputs of the module file were validated.
virtual void maybePrune (StringRef Path, time_t PruneInterval, time_t PruneAfter)=0
 Prune module files that haven't been accessed in a long time.
virtual InMemoryModuleCachegetInMemoryModuleCache ()=0
 Returns this process's view of the module cache.
virtual const InMemoryModuleCachegetInMemoryModuleCache () const =0
virtual std::error_code write (StringRef Path, llvm::MemoryBufferRef Buffer, off_t &Size, time_t &ModTime)=0
 Write the PCM contents to the given path in the module cache.
virtual Expected< std::unique_ptr< llvm::MemoryBuffer > > read (StringRef FileName, off_t &Size, time_t &ModTime)=0
virtual ~ModuleCache ()=default

Detailed Description

The module cache used for compiling modules implicitly.

This centralizes the operations the compiler might want to perform on the cache.

Definition at line 30 of file ModuleCache.h.

Constructor & Destructor Documentation

◆ ~ModuleCache()

virtual clang::ModuleCache::~ModuleCache ( )
virtualdefault

Member Function Documentation

◆ getInMemoryModuleCache() [1/2]

virtual const InMemoryModuleCache & clang::ModuleCache::getInMemoryModuleCache ( ) const
pure virtual

◆ getInMemoryModuleCache() [2/2]

virtual InMemoryModuleCache & clang::ModuleCache::getInMemoryModuleCache ( )
pure virtual

Returns this process's view of the module cache.

Referenced by clang::serialization::ModuleManager::addModule(), compileModuleImpl(), and clang::ASTReader::readASTFileControlBlock().

◆ getLock()

virtual std::unique_ptr< llvm::AdvisoryLock > clang::ModuleCache::getLock ( StringRef ModuleFilename)
pure virtual

Returns lock for the given module file. The lock is initially unlocked.

Referenced by compileModuleBehindLockOrRead(), and AsyncModuleCompile::moduleLoadSkipped().

◆ getModuleTimestamp()

virtual std::time_t clang::ModuleCache::getModuleTimestamp ( StringRef ModuleFilename)
pure virtual

Returns the timestamp denoting the last time inputs of the module file were validated.

Referenced by AsyncModuleCompile::moduleLoadSkipped().

◆ maybePrune()

virtual void clang::ModuleCache::maybePrune ( StringRef Path,
time_t PruneInterval,
time_t PruneAfter )
pure virtual

Prune module files that haven't been accessed in a long time.

◆ read()

virtual Expected< std::unique_ptr< llvm::MemoryBuffer > > clang::ModuleCache::read ( StringRef FileName,
off_t & Size,
time_t & ModTime )
pure virtual

References clang::FileName.

◆ updateModuleTimestamp()

virtual void clang::ModuleCache::updateModuleTimestamp ( StringRef ModuleFilename)
pure virtual

Updates the timestamp denoting the last time inputs of the module file were validated.

Referenced by compileModuleImpl().

◆ write()

virtual std::error_code clang::ModuleCache::write ( StringRef Path,
llvm::MemoryBufferRef Buffer,
off_t & Size,
time_t & ModTime )
pure virtual

Write the PCM contents to the given path in the module cache.

Referenced by compileModuleImpl().


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