31#ifndef SYMBOL_LIBRARY_H
32#define SYMBOL_LIBRARY_H
35#include <boost/ptr_container/ptr_vector.hpp>
36#include <wx/filename.h>
104 wxArrayString* aNames =
nullptr );
107 const wxArrayString& aNames );
115 static const wxString
CacheName(
const wxString& aFullProjectFilename );
163 const wxString& aLibraryName = wxEmptyString );
179 SCH_IO_MGR::SCH_FILE_T aPluginType = SCH_IO_MGR::SCH_LEGACY );
191 void Create(
const wxString& aFileName = wxEmptyString );
208 void Save(
bool aSaveDocFile =
true );
227 void GetSymbols( std::vector<LIB_SYMBOL*>& aSymbols )
const;
A logical library item identifier and consists of various portions much like a URI.
Define a library symbol object.
An abstract class from which implementation specific LINE_READERs may be derived to read single lines...
A PROJECT can hold stuff it knows nothing about, in the form of _ELEM derivatives.
Container for project specific data.
ELEM
The set of #_ELEMs that a PROJECT can hold.
Base class that schematic file and library loading and saving plugins should derive from.
A collection of SYMBOL_LIB objects.
void FindLibraryNearEntries(std::vector< LIB_SYMBOL * > &aCandidates, const wxString &aEntryName, const wxString &aLibraryName=wxEmptyString)
Search all libraries in the list for a LIB_SYMBOL using a case insensitive comparison.
static void SetLibNamesAndPaths(PROJECT *aProject, const wxString &aPaths, const wxArrayString &aNames)
SYMBOL_LIB * FindLibrary(const wxString &aName)
Find a symbol library by aName.
SYMBOL_LIB * FindLibraryByFullFileName(const wxString &aFullFileName)
PROJECT::ELEM ProjectElementType() override
wxArrayString GetLibraryNames(bool aSorted=true)
Return the list of symbol library file names without path and extension.
void LoadAllLibraries(PROJECT *aProject, bool aShowProgress=true)
Load all of the project's libraries into this container, which should be cleared before calling it.
bool ReloadLibrary(const wxString &aFileName)
Refreshes the library from the (possibly updated) contents on disk.
static const wxString CacheName(const wxString &aFullProjectFilename)
Return the name of the cache library after potentially fixing it from an older naming scheme.
LIB_SYMBOL * FindLibSymbol(const LIB_ID &aLibId, const wxString &aLibraryName=wxEmptyString)
Search all libraries in the list for a symbol.
SYMBOL_LIB * AddLibrary(const wxString &aFileName)
Allocate and adds a symbol library to the library list.
static void GetLibNamesAndPaths(PROJECT *aProject, wxString *aPaths, wxArrayString *aNames=nullptr)
SYMBOL_LIB * GetCacheLibrary()
Object used to load, save, search, and otherwise manipulate symbol library files.
std::unique_ptr< SCH_IO > m_plugin
void SetFileName(const wxString &aFileName)
wxString GetFullFileName() const
Return the full file library name with path and extension.
SCH_IO_MGR::SCH_FILE_T m_pluginType
void Create(const wxString &aFileName=wxEmptyString)
void GetSymbols(std::vector< LIB_SYMBOL * > &aSymbols) const
Load a vector with all the entries in this library.
std::unique_ptr< std::map< std::string, UTF8 > > m_properties
Library properties.
void SetPluginType(SCH_IO_MGR::SCH_FILE_T aPluginType)
SCH_LIB_TYPE type
Library type indicator.
void EnableBuffering(bool aEnable=true)
SCH_IO_MGR::SCH_FILE_T GetPluginType() const
void Save(bool aSaveDocFile=true)
const wxString GetLogicalName() const
Return the logical name of the library.
LIB_SYMBOL * FindSymbol(const wxString &aName) const
Find LIB_SYMBOL by aName.
void AddSymbol(LIB_SYMBOL *aSymbol)
Add aSymbol entry to library.
static SYMBOL_LIB * LoadSymbolLibrary(const wxString &aFileName)
Allocate and load a symbol library file.
bool isModified
Library modification status.
void GetSymbolNames(wxArrayString &aNames) const
Load a string array with the names of all the entries in this library.
wxDateTime timeStamp
Library save time and date.
int versionMinor
Library minor version number.
int m_mod_hash
incremented each time library is changed.
LIB_SYMBOL * ReplaceSymbol(LIB_SYMBOL *aOldSymbol, LIB_SYMBOL *aNewSymbol)
Replace an existing symbol entry in the library.
wxFileName fileName
Library file name.
int versionMajor
Library major version number.
wxString header
first line of loaded library.
const wxString GetName() const
Return the file name without path or extension.
LIB_SYMBOL * RemoveSymbol(LIB_SYMBOL *aEntry)
Safely remove aEntry from the library and return the next entry.
bool operator==(const SYMBOL_LIB &aLibrary, const wxString &aName)
Case insensitive library name comparison.
boost::ptr_vector< SYMBOL_LIB > SYMBOL_LIBS_BASE
bool operator!=(const SYMBOL_LIB &aLibrary, const wxString &aName)