ACAV f0ba4b7c9529
Abstract Syntax Tree (AST) visualization tool for C, C++, and Objective-C
Loading...
Searching...
No Matches
acav::FileManager Class Reference

Centralized file registry providing path-to-FileID mapping. More...

#include <FileManager.h>

Public Member Functions

 FileManager (const FileManager &)=delete
FileManager & operator= (const FileManager &)=delete
 FileManager (FileManager &&)=delete
FileManager & operator= (FileManager &&)=delete
FileID registerFile (std::string_view filePath)
 Register a file and return its FileID.
std::optional< FileIDtryGetFileId (std::string_view filePath) const
 Look up FileID for a path without registering.
std::string_view getFilePath (FileID id) const
 Get the canonical path for a FileID.
std::size_t getRefCount (FileID id) const
 Get reference count for a file.
std::size_t getRegisteredFileCount () const
 Get total number of registered files.
bool isValidFileId (FileID id) const
 Check if a FileID is valid.

Static Public Attributes

static constexpr FileID InvalidFileID = 0
 Reserved invalid FileID.

Detailed Description

Centralized file registry providing path-to-FileID mapping.

Implements memory optimization similar to LLVM's StringRef pattern: AST nodes store FileID references instead of full paths. Thread-safe with path normalization and reference counting.

Definition at line 45 of file FileManager.h.

Member Function Documentation

◆ getFilePath()

std::string_view acav::FileManager::getFilePath ( FileID id) const

Get the canonical path for a FileID.

Parameters
idFileID to look up.
Returns
Path string_view, or empty if invalid. Valid until destruction.

Definition at line 73 of file FileManager.cpp.

References isValidFileId().

◆ getRefCount()

std::size_t acav::FileManager::getRefCount ( FileID id) const

Get reference count for a file.

Parameters
idFileID to query.
Returns
Number of times registerFile() was called for this ID.

Definition at line 84 of file FileManager.cpp.

References isValidFileId().

◆ getRegisteredFileCount()

std::size_t acav::FileManager::getRegisteredFileCount ( ) const

Get total number of registered files.

Definition at line 94 of file FileManager.cpp.

◆ isValidFileId()

bool acav::FileManager::isValidFileId ( FileID id) const

Check if a FileID is valid.

Definition at line 99 of file FileManager.cpp.

References InvalidFileID.

Referenced by getFilePath(), and getRefCount().

◆ registerFile()

FileID acav::FileManager::registerFile ( std::string_view filePath)

Register a file and return its FileID.

Parameters
filePathPath to the file (will be normalized).
Returns
FileID (1-based), or existing ID if already registered.

Definition at line 29 of file FileManager.cpp.

Referenced by acav::SourceLocation::fromClang().

◆ tryGetFileId()

std::optional< FileID > acav::FileManager::tryGetFileId ( std::string_view filePath) const

Look up FileID for a path without registering.

Parameters
filePathPath to look up (will be normalized).
Returns
FileID if found, std::nullopt otherwise.

Definition at line 59 of file FileManager.cpp.

Referenced by acav::SourceLocation::fromClang().

Member Data Documentation

◆ InvalidFileID


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