KiCad PCB EDA Suite
NETLIST Class Reference

NETLIST stores all of information read from a netlist along with the flags used to update the NETLIST in the BOARD. More...

#include <pcb_netlist.h>

Public Member Functions

 NETLIST ()
 
bool IsEmpty () const
 Function IsEmpty() More...
 
void Clear ()
 Function Clear removes all components from the netlist. More...
 
unsigned GetCount () const
 Function GetCount. More...
 
COMPONENTGetComponent (unsigned aIndex)
 Function GetComponent returns the COMPONENT at aIndex. More...
 
void AddComponent (COMPONENT *aComponent)
 Function AddComponent adds aComponent to the NETLIST. More...
 
COMPONENTGetComponentByReference (const wxString &aReference)
 Function GetComponentByReference returns a COMPONENT by aReference. More...
 
COMPONENTGetComponentByPath (const KIID_PATH &aPath)
 Function GetComponentByPath returns a COMPONENT by aPath. More...
 
void SortByFPID ()
 
void SortByReference ()
 
void SetFindByTimeStamp (bool aFindByTimeStamp)
 
bool IsFindByTimeStamp () const
 
void SetReplaceFootprints (bool aReplace)
 
bool GetReplaceFootprints () const
 
bool AnyFootprintsLinked () const
 Function AnyFootprintsLinked. More...
 
void Format (const char *aDocName, OUTPUTFORMATTER *aOut, int aNestLevel, int aCtl=0)
 
void FormatCvpcbNetlist (OUTPUTFORMATTER *aOut)
 

Private Attributes

COMPONENTS m_components
 
bool m_findByTimeStamp
 
bool m_replaceFootprints
 

Detailed Description

NETLIST stores all of information read from a netlist along with the flags used to update the NETLIST in the BOARD.

Definition at line 207 of file pcb_netlist.h.

Constructor & Destructor Documentation

◆ NETLIST()

NETLIST::NETLIST ( )
inline

Definition at line 215 of file pcb_netlist.h.

215  :
216  m_findByTimeStamp( false ),
217  m_replaceFootprints( false )
218  {
219  }
bool m_replaceFootprints
Definition: pcb_netlist.h:212
bool m_findByTimeStamp
Definition: pcb_netlist.h:211

Member Function Documentation

◆ AddComponent()

void NETLIST::AddComponent ( COMPONENT aComponent)

Function AddComponent adds aComponent to the NETLIST.

Note
If aComponent already exists in the NETLIST, aComponent is deleted to prevent memory leaks. An assertion is raised in debug builds.
Parameters
aComponentis the COMPONENT to save to the NETLIST.

Definition at line 144 of file pcb_netlist.cpp.

145 {
146  m_components.push_back( aComponent );
147 }
COMPONENTS m_components
Definition: pcb_netlist.h:209

References m_components.

Referenced by PCB_EDIT_FRAME::KiwayMailIn(), LEGACY_NETLIST_READER::loadComponent(), KICAD_NETLIST_PARSER::parseComponent(), and DIALOG_BOARD_REANNOTATE::ReannotateBoard().

◆ AnyFootprintsLinked()

bool NETLIST::AnyFootprintsLinked ( ) const

Function AnyFootprintsLinked.

Returns
true if any component with a footprint link is found.

Definition at line 225 of file pcb_netlist.cpp.

226 {
227  for( unsigned i = 0; i < m_components.size(); i++ )
228  {
229  if( !m_components[i].GetFPID().empty() )
230  return true;
231  }
232 
233  return false;
234 }
COMPONENTS m_components
Definition: pcb_netlist.h:209

References m_components.

Referenced by CVPCB_MAINFRAME::ReadNetListAndFpFiles().

◆ Clear()

void NETLIST::Clear ( )
inline

Function Clear removes all components from the netlist.

Definition at line 231 of file pcb_netlist.h.

231 { m_components.clear(); }
COMPONENTS m_components
Definition: pcb_netlist.h:209

References m_components.

Referenced by CVPCB_MAINFRAME::ReadSchematicNetlist().

◆ Format()

void NETLIST::Format ( const char *  aDocName,
OUTPUTFORMATTER aOut,
int  aNestLevel,
int  aCtl = 0 
)

Definition at line 129 of file pcb_netlist.cpp.

130 {
131  int nl = aNestLevel;
132 
133  aOut->Print( nl, "(%s\n", aDocName );
134 
135  for( unsigned i = 0; i < m_components.size(); i++ )
136  {
137  m_components[i].Format( aOut, nl+1, aCtl );
138  }
139 
140  aOut->Print( nl, ")\n" );
141 }
COMPONENTS m_components
Definition: pcb_netlist.h:209
int PRINTF_FUNC Print(int nestLevel, const char *fmt,...)
Format and write text to the output stream.
Definition: richio.cpp:408

References m_components, and OUTPUTFORMATTER::Print().

Referenced by FormatCvpcbNetlist(), PCB_EDIT_FRAME::KiwayMailIn(), and DIALOG_BOARD_REANNOTATE::ReannotateBoard().

◆ FormatCvpcbNetlist()

void NETLIST::FormatCvpcbNetlist ( OUTPUTFORMATTER aOut)
inline

Definition at line 300 of file pcb_netlist.h.

301  {
302  Format( "cvpcb_netlist", aOut, 0, CTL_FOR_CVPCB );
303  }
#define CTL_FOR_CVPCB
Definition: pcb_netlist.h:298
void Format(const char *aDocName, OUTPUTFORMATTER *aOut, int aNestLevel, int aCtl=0)

References CTL_FOR_CVPCB, and Format().

Referenced by CVPCB_MAINFRAME::SaveFootprintAssociation().

◆ GetComponent()

◆ GetComponentByPath()

COMPONENT * NETLIST::GetComponentByPath ( const KIID_PATH aPath)

Function GetComponentByPath returns a COMPONENT by aPath.

Parameters
aPathis the KIID_PATH [ sheetUUID, .., compUUID ] of the COMPONENT.
Returns
a pointer to the COMPONENT that matches aPath if found. Otherwise NULL.

Definition at line 167 of file pcb_netlist.cpp.

168 {
169  if( aUuidPath.empty() )
170  return nullptr;
171 
172  KIID comp_uuid = aUuidPath.back();
173  KIID_PATH base = aUuidPath;
174 
175  if( !base.empty() )
176  base.pop_back();
177 
178  for( COMPONENT& component : m_components )
179  {
180  const std::vector<KIID>& kiids = component.GetKIIDs();
181 
182  if( base != component.GetPath() )
183  continue;
184 
185  if( std::find( kiids.begin(), kiids.end(), comp_uuid ) != kiids.end() )
186  return &component;
187  }
188 
189  return nullptr;
190 }
COMPONENTS m_components
Definition: pcb_netlist.h:209
Definition: kiid.h:44
COMPONENT is used to store components and all of their related information found in a netlist.
Definition: pcb_netlist.h:85

References m_components.

Referenced by BOARD_NETLIST_UPDATER::UpdateNetlist().

◆ GetComponentByReference()

COMPONENT * NETLIST::GetComponentByReference ( const wxString &  aReference)

Function GetComponentByReference returns a COMPONENT by aReference.

Parameters
aReferenceis the reference designator the COMPONENT.
Returns
a pointer to the COMPONENT that matches aReference if found. Otherwise NULL.

Definition at line 150 of file pcb_netlist.cpp.

151 {
152  COMPONENT* component = NULL;
153 
154  for( unsigned i = 0; i < m_components.size(); i++ )
155  {
156  if( m_components[i].GetReference() == aReference )
157  {
158  component = &m_components[i];
159  break;
160  }
161  }
162 
163  return component;
164 }
COMPONENTS m_components
Definition: pcb_netlist.h:209
#define NULL
COMPONENT is used to store components and all of their related information found in a netlist.
Definition: pcb_netlist.h:85

References m_components, and NULL.

Referenced by CMP_READER::Load(), LEGACY_NETLIST_READER::loadFootprintFilters(), KICAD_NETLIST_PARSER::parseNet(), DRC_TEST_PROVIDER_LVS::testFootprints(), and BOARD_NETLIST_UPDATER::UpdateNetlist().

◆ GetCount()

◆ GetReplaceFootprints()

bool NETLIST::GetReplaceFootprints ( ) const
inline

Definition at line 284 of file pcb_netlist.h.

284 { return m_replaceFootprints; }
bool m_replaceFootprints
Definition: pcb_netlist.h:212

References m_replaceFootprints.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ IsEmpty()

bool NETLIST::IsEmpty ( ) const
inline

◆ IsFindByTimeStamp()

bool NETLIST::IsFindByTimeStamp ( ) const
inline

Definition at line 281 of file pcb_netlist.h.

281 { return m_findByTimeStamp; }
bool m_findByTimeStamp
Definition: pcb_netlist.h:211

References m_findByTimeStamp.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ SetFindByTimeStamp()

void NETLIST::SetFindByTimeStamp ( bool  aFindByTimeStamp)
inline

Definition at line 280 of file pcb_netlist.h.

280 { m_findByTimeStamp = aFindByTimeStamp; }
bool m_findByTimeStamp
Definition: pcb_netlist.h:211

References m_findByTimeStamp.

Referenced by DIALOG_NETLIST::loadNetlist(), and DIALOG_UPDATE_PCB::PerformUpdate().

◆ SetReplaceFootprints()

void NETLIST::SetReplaceFootprints ( bool  aReplace)
inline

Definition at line 283 of file pcb_netlist.h.

283 { m_replaceFootprints = aReplace; }
bool m_replaceFootprints
Definition: pcb_netlist.h:212

References m_replaceFootprints.

Referenced by DIALOG_NETLIST::loadNetlist(), and DIALOG_UPDATE_PCB::PerformUpdate().

◆ SortByFPID()

void NETLIST::SortByFPID ( )

Definition at line 203 of file pcb_netlist.cpp.

204 {
205  m_components.sort( ByFPID );
206 }
static bool ByFPID(const COMPONENT &ref, const COMPONENT &cmp)
Function ByFPID is a helper function used to sort the component list used by loadNewModules.
COMPONENTS m_components
Definition: pcb_netlist.h:209

References ByFPID(), and m_components.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ SortByReference()

void NETLIST::SortByReference ( )

Definition at line 219 of file pcb_netlist.cpp.

220 {
221  m_components.sort();
222 }
COMPONENTS m_components
Definition: pcb_netlist.h:209

References m_components.

Referenced by DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), and CVPCB_MAINFRAME::ReadSchematicNetlist().

Member Data Documentation

◆ m_components

◆ m_findByTimeStamp

bool NETLIST::m_findByTimeStamp
private

Definition at line 211 of file pcb_netlist.h.

Referenced by IsFindByTimeStamp(), and SetFindByTimeStamp().

◆ m_replaceFootprints

bool NETLIST::m_replaceFootprints
private

Definition at line 212 of file pcb_netlist.h.

Referenced by GetReplaceFootprints(), and SetReplaceFootprints().


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