| 
    KiCad PCB EDA Suite
    
   | 
 
A base cache assistant implementation for the symbol library portion of the SCH_IO API. More...
#include <sch_io_lib_cache.h>
  
Public Member Functions | |
| SCH_IO_LIB_CACHE (const wxString &aLibraryPath) | |
| virtual | ~SCH_IO_LIB_CACHE () | 
| void | IncrementModifyHash () | 
| int | GetModifyHash () | 
| virtual void | Save (const std::optional< bool > &aOpt=std::nullopt) | 
| Save the entire library to file m_libFileName;.   | |
| virtual void | Load ()=0 | 
| virtual void | AddSymbol (const LIB_SYMBOL *aSymbol) | 
| virtual void | DeleteSymbol (const wxString &aName)=0 | 
| virtual LIB_SYMBOL * | GetSymbol (const wxString &aName) | 
| wxFileName | GetRealFile () const | 
| long long | GetLibModificationTime () | 
| bool | IsFile (const wxString &aFullPathAndFileName) const | 
| bool | IsFileChanged () const | 
| void | SetModified (bool aModified=true) | 
| wxString | GetLogicalName () const | 
| void | SetFileName (const wxString &aFileName) | 
| wxString | GetFileName () const | 
| const LIB_SYMBOL_MAP & | GetSymbolMap () const | 
Protected Member Functions | |
| LIB_SYMBOL * | removeSymbol (LIB_SYMBOL *aAlias) | 
Protected Attributes | |
| int | m_modHash | 
| std::mutex | m_modHashMutex | 
| wxString | m_fileName | 
| wxFileName | m_libFileName | 
| long long | m_fileModTime | 
| LIB_SYMBOL_MAP | m_symbols | 
| bool | m_isWritable | 
| bool | m_isModified | 
| SCH_LIB_TYPE | m_libType | 
A base cache assistant implementation for the symbol library portion of the SCH_IO API.
Definition at line 40 of file sch_io_lib_cache.h.
| SCH_IO_LIB_CACHE::SCH_IO_LIB_CACHE | ( | const wxString & | aLibraryPath | ) | 
Definition at line 29 of file sch_io_lib_cache.cpp.
References LT_EESCHEMA, m_fileModTime, m_fileName, m_isModified, m_isWritable, m_libFileName, m_libType, and m_modHash.
Referenced by SCH_IO_KICAD_LEGACY_LIB_CACHE::SCH_IO_KICAD_LEGACY_LIB_CACHE(), and SCH_IO_KICAD_SEXPR_LIB_CACHE::SCH_IO_KICAD_SEXPR_LIB_CACHE().
      
  | 
  virtual | 
Definition at line 41 of file sch_io_lib_cache.cpp.
References m_symbols.
      
  | 
  virtual | 
Definition at line 178 of file sch_io_lib_cache.cpp.
References LIB_SYMBOL::GetName(), IncrementModifyHash(), m_isModified, m_symbols, name, and removeSymbol().
      
  | 
  pure virtual | 
Implemented in SCH_IO_KICAD_LEGACY_LIB_CACHE, and SCH_IO_KICAD_SEXPR_LIB_CACHE.
      
  | 
  inline | 
Definition at line 88 of file sch_io_lib_cache.h.
References m_libFileName.
| long long SCH_IO_LIB_CACHE::GetLibModificationTime | ( | ) | 
Definition at line 67 of file sch_io_lib_cache.cpp.
References GetRealFile(), FILEEXT::KiCadSymbolLibFileExtension, m_isWritable, and TimestampDir().
Referenced by SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Load(), and SCH_IO_KICAD_SEXPR_LIB_CACHE::Save().
      
  | 
  inline | 
Definition at line 84 of file sch_io_lib_cache.h.
References m_libFileName.
      
  | 
  inline | 
Definition at line 52 of file sch_io_lib_cache.h.
References m_modHash, and m_modHashMutex.
| wxFileName SCH_IO_LIB_CACHE::GetRealFile | ( | ) | const | 
Definition at line 57 of file sch_io_lib_cache.cpp.
References m_libFileName, and WX_FILENAME::ResolvePossibleSymlinks().
Referenced by GetLibModificationTime(), IsFileChanged(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Save(), and SCH_IO_KICAD_SEXPR_LIB_CACHE::Save().
      
  | 
  virtual | 
Definition at line 195 of file sch_io_lib_cache.cpp.
References m_symbols.
Referenced by EESCHEMA_JOBS_HANDLER::JobSymExportSvg().
      
  | 
  inline | 
Definition at line 90 of file sch_io_lib_cache.h.
References m_symbols.
Referenced by EESCHEMA_JOBS_HANDLER::JobSymExportSvg().
      
  | 
  inline | 
Definition at line 46 of file sch_io_lib_cache.h.
References m_modHash, and m_modHashMutex.
Referenced by AddSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::DeleteSymbol(), SCH_IO_KICAD_SEXPR_LIB_CACHE::DeleteSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Load(), and removeSymbol().
| bool SCH_IO_LIB_CACHE::IsFile | ( | const wxString & | aFullPathAndFileName | ) | const | 
Definition at line 87 of file sch_io_lib_cache.cpp.
References m_fileName.
| bool SCH_IO_LIB_CACHE::IsFileChanged | ( | ) | const | 
Definition at line 93 of file sch_io_lib_cache.cpp.
References GetRealFile(), FILEEXT::KiCadSymbolLibFileExtension, m_fileModTime, and TimestampDir().
      
  | 
  pure virtual | 
Implemented in SCH_IO_ALTIUM_LIB_CACHE, SCH_IO_KICAD_LEGACY_LIB_CACHE, and SCH_IO_KICAD_SEXPR_LIB_CACHE.
      
  | 
  protected | 
Definition at line 111 of file sch_io_lib_cache.cpp.
References LIB_SYMBOL::AddDrawItem(), EDA_ITEM::Clone(), SCH_FIELD::GetCanonicalName(), LIB_SYMBOL::GetDrawItems(), LIB_SYMBOL::GetField(), LIB_SYMBOL::GetName(), IncrementModifyHash(), LIB_SYMBOL::IsRoot(), m_isModified, m_libFileName, m_symbols, SCH_FIELD_T, EDA_ITEM::SetParent(), and LIB_SYMBOL::SharedPtr().
Referenced by AddSymbol().
      
  | 
  virtual | 
Save the entire library to file m_libFileName;.
Reimplemented in SCH_IO_KICAD_LEGACY_LIB_CACHE, and SCH_IO_KICAD_SEXPR_LIB_CACHE.
Definition at line 51 of file sch_io_lib_cache.cpp.
      
  | 
  inline | 
Definition at line 86 of file sch_io_lib_cache.h.
References m_libFileName.
Referenced by EESCHEMA_JOBS_HANDLER::JobSymUpgrade().
      
  | 
  inline | 
Definition at line 82 of file sch_io_lib_cache.h.
References m_isModified.
Referenced by EESCHEMA_JOBS_HANDLER::JobSymUpgrade().
      
  | 
  protected | 
Definition at line 100 of file sch_io_lib_cache.h.
Referenced by IsFileChanged(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Save(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Save(), and SCH_IO_LIB_CACHE().
      
  | 
  protected | 
Definition at line 98 of file sch_io_lib_cache.h.
Referenced by IsFile(), and SCH_IO_LIB_CACHE().
      
  | 
  protected | 
Definition at line 103 of file sch_io_lib_cache.h.
Referenced by AddSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::DeleteSymbol(), SCH_IO_KICAD_SEXPR_LIB_CACHE::DeleteSymbol(), removeSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Save(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Save(), SCH_IO_LIB_CACHE(), and SetModified().
      
  | 
  protected | 
Definition at line 102 of file sch_io_lib_cache.h.
Referenced by GetLibModificationTime(), and SCH_IO_LIB_CACHE().
      
  | 
  protected | 
Definition at line 99 of file sch_io_lib_cache.h.
Referenced by SCH_IO_KICAD_LEGACY_LIB_CACHE::DeleteSymbol(), SCH_IO_KICAD_SEXPR_LIB_CACHE::DeleteSymbol(), GetFileName(), GetLogicalName(), GetRealFile(), SCH_IO_KICAD_SEXPR_LIB_CACHE::isLibraryPathValid(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDocs(), removeSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveDocFile(), SCH_IO_LIB_CACHE(), SetFileName(), and SCH_IO_KICAD_SEXPR_LIB_CACHE::updateParentSymbolLinks().
      
  | 
  protected | 
Definition at line 104 of file sch_io_lib_cache.h.
Referenced by SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), and SCH_IO_LIB_CACHE().
      
  | 
  protected | 
Definition at line 95 of file sch_io_lib_cache.h.
Referenced by GetModifyHash(), IncrementModifyHash(), and SCH_IO_LIB_CACHE().
      
  | 
  protected | 
Definition at line 96 of file sch_io_lib_cache.h.
Referenced by GetModifyHash(), and IncrementModifyHash().
      
  | 
  protected | 
Definition at line 101 of file sch_io_lib_cache.h.
Referenced by AddSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::DeleteSymbol(), SCH_IO_KICAD_SEXPR_LIB_CACHE::DeleteSymbol(), GetSymbol(), GetSymbolMap(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Load(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadDocs(), removeSymbol(), SCH_IO_KICAD_LEGACY_LIB_CACHE::Save(), SCH_IO_KICAD_SEXPR_LIB_CACHE::Save(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveDocFile(), SCH_IO_KICAD_SEXPR_LIB_CACHE::updateParentSymbolLinks(), and ~SCH_IO_LIB_CACHE().