KiCad PCB EDA Suite
NETLIST Class Reference

Store 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
 
void Clear ()
 Remove all components from the netlist. More...
 
unsigned GetCount () const
 
COMPONENTGetComponent (unsigned aIndex)
 Return the COMPONENT at aIndex. More...
 
void AddComponent (COMPONENT *aComponent)
 Add aComponent to the NETLIST. More...
 
COMPONENTGetComponentByReference (const wxString &aReference)
 Return a COMPONENT by aReference. More...
 
COMPONENTGetComponentByPath (const KIID_PATH &aPath)
 Return 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
 
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

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

Definition at line 206 of file pcb_netlist.h.

Constructor & Destructor Documentation

◆ NETLIST()

NETLIST::NETLIST ( )
inline

Definition at line 209 of file pcb_netlist.h.

209  :
210  m_findByTimeStamp( false ),
211  m_replaceFootprints( false )
212  {
213  }
bool m_replaceFootprints
Definition: pcb_netlist.h:296
bool m_findByTimeStamp
Definition: pcb_netlist.h:295

Member Function Documentation

◆ AddComponent()

void NETLIST::AddComponent ( COMPONENT aComponent)

Add 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 145 of file pcb_netlist.cpp.

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

References m_components.

Referenced by LEGACY_NETLIST_READER::loadComponent(), and KICAD_NETLIST_PARSER::parseComponent().

◆ AnyFootprintsLinked()

bool NETLIST::AnyFootprintsLinked ( ) const
Returns
true if any component with a footprint link is found.

Definition at line 224 of file pcb_netlist.cpp.

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

References m_components.

Referenced by CVPCB_MAINFRAME::ReadNetListAndFpFiles().

◆ Clear()

void NETLIST::Clear ( )
inline

Remove all components from the netlist.

Definition at line 223 of file pcb_netlist.h.

223 { m_components.clear(); }
COMPONENTS m_components
Definition: pcb_netlist.h:293

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 130 of file pcb_netlist.cpp.

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

References m_components, and OUTPUTFORMATTER::Print().

Referenced by FormatCvpcbNetlist().

◆ FormatCvpcbNetlist()

void NETLIST::FormatCvpcbNetlist ( OUTPUTFORMATTER aOut)
inline

Definition at line 287 of file pcb_netlist.h.

288  {
289  Format( "cvpcb_netlist", aOut, 0, CTL_FOR_CVPCB );
290  }
#define CTL_FOR_CVPCB
Definition: pcb_netlist.h:285
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)

Return 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 168 of file pcb_netlist.cpp.

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

References m_components.

Referenced by BOARD_NETLIST_UPDATER::UpdateNetlist().

◆ GetComponentByReference()

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

Return 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 151 of file pcb_netlist.cpp.

152 {
153  COMPONENT* component = nullptr;
154 
155  for( unsigned i = 0; i < m_components.size(); i++ )
156  {
157  if( m_components[i].GetReference() == aReference )
158  {
159  component = &m_components[i];
160  break;
161  }
162  }
163 
164  return component;
165 }
COMPONENTS m_components
Definition: pcb_netlist.h:293
Store all of the related footprint information found in a netlist.
Definition: pcb_netlist.h:84

References m_components.

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 271 of file pcb_netlist.h.

271 { return m_replaceFootprints; }
bool m_replaceFootprints
Definition: pcb_netlist.h:296

References m_replaceFootprints.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ IsEmpty()

bool NETLIST::IsEmpty ( ) const
inline

◆ IsFindByTimeStamp()

bool NETLIST::IsFindByTimeStamp ( ) const
inline

Definition at line 268 of file pcb_netlist.h.

268 { return m_findByTimeStamp; }
bool m_findByTimeStamp
Definition: pcb_netlist.h:295

References m_findByTimeStamp.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ SetFindByTimeStamp()

void NETLIST::SetFindByTimeStamp ( bool  aFindByTimeStamp)
inline

Definition at line 267 of file pcb_netlist.h.

267 { m_findByTimeStamp = aFindByTimeStamp; }
bool m_findByTimeStamp
Definition: pcb_netlist.h:295

References m_findByTimeStamp.

Referenced by DIALOG_UPDATE_PCB::PerformUpdate().

◆ SetReplaceFootprints()

void NETLIST::SetReplaceFootprints ( bool  aReplace)
inline

Definition at line 270 of file pcb_netlist.h.

270 { m_replaceFootprints = aReplace; }
bool m_replaceFootprints
Definition: pcb_netlist.h:296

References m_replaceFootprints.

Referenced by 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)
A helper function used to sort the component list used by loadNewModules.
COMPONENTS m_components
Definition: pcb_netlist.h:293

References ByFPID(), and m_components.

Referenced by PCB_EDIT_FRAME::LoadFootprints().

◆ SortByReference()

void NETLIST::SortByReference ( )

Definition at line 218 of file pcb_netlist.cpp.

219 {
220  m_components.sort();
221 }
COMPONENTS m_components
Definition: pcb_netlist.h:293

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 295 of file pcb_netlist.h.

Referenced by IsFindByTimeStamp(), and SetFindByTimeStamp().

◆ m_replaceFootprints

bool NETLIST::m_replaceFootprints
private

Definition at line 296 of file pcb_netlist.h.

Referenced by GetReplaceFootprints(), and SetReplaceFootprints().


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