KiCad PCB EDA Suite
Loading...
Searching...
No Matches
FP_CACHE Class Reference

#include <pcb_plugin.h>

Public Member Functions

 FP_CACHE (PCB_PLUGIN *aOwner, const wxString &aLibraryPath)
 
wxString GetPath () const
 
bool IsWritable () const
 
bool Exists () const
 
FP_CACHE_FOOTPRINT_MAPGetFootprints ()
 
void Save (FOOTPRINT *aFootprint=nullptr)
 Save the footprint cache or a single footprint from it to disk. More...
 
void Load ()
 
void Remove (const wxString &aFootprintName)
 
bool IsModified ()
 Return true if the cache is not up-to-date. More...
 
bool IsPath (const wxString &aPath) const
 Check if aPath is the same as the current cache path. More...
 
void SetPath (const wxString &aPath)
 

Static Public Member Functions

static long long GetTimestamp (const wxString &aLibPath)
 Generate a timestamp representing all source files in the cache (including the parent directory). More...
 

Private Attributes

PCB_PLUGINm_owner
 
wxFileName m_lib_path
 
wxString m_lib_raw_path
 
FP_CACHE_FOOTPRINT_MAP m_footprints
 
bool m_cache_dirty
 
long long m_cache_timestamp
 

Detailed Description

Definition at line 198 of file pcb_plugin.h.

Constructor & Destructor Documentation

◆ FP_CACHE()

FP_CACHE::FP_CACHE ( PCB_PLUGIN aOwner,
const wxString &  aLibraryPath 
)

Definition at line 74 of file pcb_plugin.cpp.

References m_cache_dirty, m_cache_timestamp, m_lib_path, m_lib_raw_path, and m_owner.

Member Function Documentation

◆ Exists()

bool FP_CACHE::Exists ( ) const
inline

Definition at line 217 of file pcb_plugin.h.

References m_lib_path.

Referenced by PCB_PLUGIN::FootprintSave().

◆ GetFootprints()

◆ GetPath()

wxString FP_CACHE::GetPath ( ) const
inline

Definition at line 213 of file pcb_plugin.h.

References m_lib_raw_path.

◆ GetTimestamp()

long long FP_CACHE::GetTimestamp ( const wxString &  aLibPath)
static

Generate a timestamp representing all source files in the cache (including the parent directory).

Timestamps should not be considered ordered. They either match or they don't.

Definition at line 264 of file pcb_plugin.cpp.

References KiCadFootprintFileExtension, and TimestampDir().

Referenced by PCB_PLUGIN::GetLibraryTimestamp(), IsModified(), and Load().

◆ IsModified()

bool FP_CACHE::IsModified ( )

Return true if the cache is not up-to-date.

Definition at line 256 of file pcb_plugin.cpp.

References GetTimestamp(), m_cache_dirty, m_cache_timestamp, and m_lib_path.

Referenced by PCB_PLUGIN::validateCache().

◆ IsPath()

bool FP_CACHE::IsPath ( const wxString &  aPath) const

Check if aPath is the same as the current cache path.

This tests paths by converting aPath using the native separators. Internally FP_CACHE stores the current path using native separators. This prevents path miscompares on Windows due to the fact that paths can be stored with / instead of \ in the footprint library table.

Parameters
aPathis the library path to test against.
Returns
true if aPath is the same as the cache path.

Definition at line 237 of file pcb_plugin.cpp.

References m_lib_raw_path.

Referenced by PCB_PLUGIN::FootprintLibDelete(), and PCB_PLUGIN::validateCache().

◆ IsWritable()

bool FP_CACHE::IsWritable ( ) const
inline

◆ Load()

◆ Remove()

void FP_CACHE::Remove ( const wxString &  aFootprintName)

Definition at line 218 of file pcb_plugin.cpp.

References _, m_footprints, m_lib_raw_path, and THROW_IO_ERROR.

Referenced by PCB_PLUGIN::FootprintDelete().

◆ Save()

void FP_CACHE::Save ( FOOTPRINT aFootprint = nullptr)

◆ SetPath()

void FP_CACHE::SetPath ( const wxString &  aPath)

Definition at line 243 of file pcb_plugin.cpp.

References GetFootprints(), m_lib_path, and m_lib_raw_path.

Referenced by PCBNEW_JOBS_HANDLER::JobExportFpUpgrade().

Member Data Documentation

◆ m_cache_dirty

bool FP_CACHE::m_cache_dirty
private

Definition at line 205 of file pcb_plugin.h.

Referenced by FP_CACHE(), IsModified(), Load(), and Save().

◆ m_cache_timestamp

long long FP_CACHE::m_cache_timestamp
private

Definition at line 207 of file pcb_plugin.h.

Referenced by FP_CACHE(), IsModified(), Load(), and Save().

◆ m_footprints

FP_CACHE_FOOTPRINT_MAP FP_CACHE::m_footprints
private

Definition at line 203 of file pcb_plugin.h.

Referenced by GetFootprints(), Load(), Remove(), and Save().

◆ m_lib_path

wxFileName FP_CACHE::m_lib_path
private

Definition at line 201 of file pcb_plugin.h.

Referenced by Exists(), FP_CACHE(), IsModified(), IsWritable(), Save(), and SetPath().

◆ m_lib_raw_path

wxString FP_CACHE::m_lib_raw_path
private

Definition at line 202 of file pcb_plugin.h.

Referenced by FP_CACHE(), GetPath(), IsPath(), Load(), Remove(), Save(), and SetPath().

◆ m_owner

PCB_PLUGIN* FP_CACHE::m_owner
private

Definition at line 200 of file pcb_plugin.h.

Referenced by FP_CACHE(), and Save().


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