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

#include <symbol_library_manager.h>

Public Member Functions

 LIB_BUFFER (const wxString &aLibrary)
 
bool IsModified () const
 
int GetHash () const
 Return the working copy of a LIB_SYMBOL root object with specified alias.
 
LIB_SYMBOLGetSymbol (const wxString &aAlias) const
 Create a new buffer to store a symbol. LIB_BUFFER takes ownership of aCopy.
 
bool CreateBuffer (std::unique_ptr< LIB_SYMBOL > aCopy, std::unique_ptr< SCH_SCREEN > aScreen)
 Update the buffered symbol with the contents of aCopy.
 
bool UpdateBuffer (SYMBOL_BUFFER &aSymbolBuf, const LIB_SYMBOL &aCopy)
 
bool DeleteBuffer (const SYMBOL_BUFFER &aSymbolBuf)
 Delete the given symbol buffer from the library buffer.
 
void ClearDeletedBuffer ()
 Save stored modifications using a plugin.
 
bool SaveBuffer (SYMBOL_BUFFER &aSymbolBuf, const wxString &aFileName, SCH_IO *aPlugin, bool aBuffer)
 Return a symbol buffer with LIB_SYMBOL holding a symbolicular alias.
 
std::shared_ptr< SYMBOL_BUFFERGetBuffer (const wxString &aAlias) const
 Return all buffered symbols.
 
const std::deque< std::shared_ptr< SYMBOL_BUFFER > > & GetBuffers () const
 
bool HasDerivedSymbols (const wxString &aParentName) const
 Check to see any symbols in the buffer are derived from a parent named aParentName.
 
void GetSymbolNames (wxArrayString &aSymbolNames, SYMBOL_NAME_FILTER aFilter=SYMBOL_NAME_FILTER::ALL)
 Fetch a list of root symbols names from the library buffer.
 
size_t GetDerivedSymbolNames (const wxString &aSymbolName, wxArrayString &aList)
 Fetch all of the symbols derived from a aSymbolName into aList.
 

Private Member Functions

int removeChildSymbols (const SYMBOL_BUFFER &aSymbolBuf)
 Remove all symbols derived from aParent from the library buffer.
 

Private Attributes

std::deque< std::shared_ptr< SYMBOL_BUFFER > > m_symbols
 
std::deque< std::shared_ptr< SYMBOL_BUFFER > > m_deleted
 Buffer for deleted symbols until library is saved.
 
const wxString m_libName
 Buffered library name.
 
int m_hash
 

Detailed Description

Definition at line 81 of file symbol_library_manager.h.

Constructor & Destructor Documentation

◆ LIB_BUFFER()

LIB_BUFFER::LIB_BUFFER ( const wxString &  aLibrary)
inline

Definition at line 84 of file symbol_library_manager.h.

Member Function Documentation

◆ ClearDeletedBuffer()

void LIB_BUFFER::ClearDeletedBuffer ( )
inline

Save stored modifications using a plugin.

aBuffer decides whether the changes should be cached or stored directly to the disk (for SCH_IO_KICAD_LEGACY).

Definition at line 119 of file symbol_library_manager.h.

References m_deleted.

Referenced by SYMBOL_LIBRARY_MANAGER::SaveLibrary().

◆ CreateBuffer()

bool LIB_BUFFER::CreateBuffer ( std::unique_ptr< LIB_SYMBOL aCopy,
std::unique_ptr< SCH_SCREEN aScreen 
)

◆ DeleteBuffer()

bool LIB_BUFFER::DeleteBuffer ( const SYMBOL_BUFFER aSymbolBuf)

Delete the given symbol buffer from the library buffer.

Definition at line 975 of file symbol_library_manager.cpp.

References LIB_SYMBOL::GetName(), SYMBOL_BUFFER::GetSymbol(), HasDerivedSymbols(), m_deleted, m_hash, m_symbols, and removeChildSymbols().

Referenced by BOOST_AUTO_TEST_CASE(), and SYMBOL_LIBRARY_MANAGER::RemoveSymbol().

◆ GetBuffer()

◆ GetBuffers()

const std::deque< std::shared_ptr< SYMBOL_BUFFER > > & LIB_BUFFER::GetBuffers ( ) const
inline

Definition at line 130 of file symbol_library_manager.h.

References m_symbols.

Referenced by BOOST_AUTO_TEST_CASE(), and SYMBOL_LIBRARY_MANAGER::SaveLibrary().

◆ GetDerivedSymbolNames()

size_t LIB_BUFFER::GetDerivedSymbolNames ( const wxString &  aSymbolName,
wxArrayString &  aList 
)

Fetch all of the symbols derived from a aSymbolName into aList.

Parameters
aSymbolNameis the name of the symbol to search for derived symbols in this buffer.
aListis the list of symbols names derived from aSymbolName.
Returns
a size_t count of the number of symbols derived from aSymbolName.

Definition at line 1212 of file symbol_library_manager.cpp.

References GetDerivedSymbolNames(), LIB_SYMBOL::GetName(), LIB_SYMBOL::GetParent(), LIB_SYMBOL::IsAlias(), and m_symbols.

Referenced by BOOST_AUTO_TEST_CASE(), GetDerivedSymbolNames(), removeChildSymbols(), and SaveBuffer().

◆ GetHash()

int LIB_BUFFER::GetHash ( ) const
inline

Return the working copy of a LIB_SYMBOL root object with specified alias.

Definition at line 103 of file symbol_library_manager.h.

References m_hash.

Referenced by BOOST_AUTO_TEST_CASE().

◆ GetSymbol()

LIB_SYMBOL * LIB_BUFFER::GetSymbol ( const wxString &  aAlias) const

Create a new buffer to store a symbol. LIB_BUFFER takes ownership of aCopy.

Definition at line 931 of file symbol_library_manager.cpp.

References GetBuffer().

Referenced by BOOST_AUTO_TEST_CASE(), SYMBOL_LIBRARY_MANAGER::GetBufferedSymbol(), and SYMBOL_LIBRARY_MANAGER::getLibraryBuffer().

◆ GetSymbolNames()

void LIB_BUFFER::GetSymbolNames ( wxArrayString &  aSymbolNames,
SYMBOL_NAME_FILTER  aFilter = SYMBOL_NAME_FILTER::ALL 
)

Fetch a list of root symbols names from the library buffer.

Parameters
aRootSymbolNamesis a reference to a list to populate with root symbol names.
aFilteris the symbol derivation type.

Definition at line 1197 of file symbol_library_manager.cpp.

References LIB_SYMBOL::GetName(), LIB_SYMBOL::IsAlias(), LIB_SYMBOL::IsRoot(), m_symbols, and UnescapeString().

Referenced by BOOST_AUTO_TEST_CASE(), and SYMBOL_LIBRARY_MANAGER::GetSymbolNames().

◆ HasDerivedSymbols()

bool LIB_BUFFER::HasDerivedSymbols ( const wxString &  aParentName) const

Check to see any symbols in the buffer are derived from a parent named aParentName.

Parameters
aParentNameis the name of the parent to test.
Returns
true if any symbols are found derived from a symbol named aParent, otherwise false.

Definition at line 1177 of file symbol_library_manager.cpp.

References m_symbols.

Referenced by BOOST_AUTO_TEST_CASE(), DeleteBuffer(), and SYMBOL_LIBRARY_MANAGER::HasDerivedSymbols().

◆ IsModified()

bool LIB_BUFFER::IsModified ( ) const
inline

Definition at line 89 of file symbol_library_manager.h.

References m_deleted, and m_symbols.

Referenced by BOOST_AUTO_TEST_CASE().

◆ removeChildSymbols()

int LIB_BUFFER::removeChildSymbols ( const SYMBOL_BUFFER aSymbolBuf)
private

Remove all symbols derived from aParent from the library buffer.

Parameters
aParentis the SYMBOL_BUFFER to check against.
Returns
the count of SYMBOL_BUFFER objects removed from the library.

Definition at line 1239 of file symbol_library_manager.cpp.

References GetDerivedSymbolNames(), LIB_SYMBOL::GetName(), SYMBOL_BUFFER::GetSymbol(), m_deleted, and m_symbols.

Referenced by DeleteBuffer().

◆ SaveBuffer()

◆ UpdateBuffer()

bool LIB_BUFFER::UpdateBuffer ( SYMBOL_BUFFER aSymbolBuf,
const LIB_SYMBOL aCopy 
)

Member Data Documentation

◆ m_deleted

std::deque<std::shared_ptr<SYMBOL_BUFFER> > LIB_BUFFER::m_deleted
private

Buffer for deleted symbols until library is saved.

Definition at line 171 of file symbol_library_manager.h.

Referenced by ClearDeletedBuffer(), DeleteBuffer(), IsModified(), and removeChildSymbols().

◆ m_hash

int LIB_BUFFER::m_hash
private

◆ m_libName

const wxString LIB_BUFFER::m_libName
private

Buffered library name.

Definition at line 173 of file symbol_library_manager.h.

Referenced by CreateBuffer().

◆ m_symbols

std::deque<std::shared_ptr<SYMBOL_BUFFER> > LIB_BUFFER::m_symbols
private

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