KiCad PCB EDA Suite
NETLIST_EXPORTER Class Reference

NETLIST_EXPORTER is a abstract class used for the netlist exporters that eeschema supports. More...

#include <netlist_exporter.h>

Inheritance diagram for NETLIST_EXPORTER:
NETLIST_EXPORTER_CADSTAR NETLIST_EXPORTER_GENERIC NETLIST_EXPORTER_ORCADPCB2 NETLIST_EXPORTER_PSPICE NETLIST_EXPORTER_KICAD NETLIST_EXPORTER_PSPICE_SIM

Public Member Functions

 NETLIST_EXPORTER (NETLIST_OBJECT_LIST *aMasterList)
 Constructor. More...
 
virtual ~NETLIST_EXPORTER ()
 
virtual bool WriteNetlist (const wxString &aOutFileName, unsigned aNetlistOptions)
 Function WriteNetlist writes to specified output file. More...
 

Static Public Member Functions

static wxString MakeCommandLine (const wxString &aFormatString, const wxString &aNetlistFile, const wxString &aFinalFile, const wxString &aProjectDirectory)
 Function MakeCommandLine builds up a string that describes a command line for executing a child process. More...
 

Protected Member Functions

void CreatePinList (SCH_COMPONENT *aItem, SCH_SHEET_PATH *aSheetPath)
 Function findNextComponentAndCreatePinList finds a component from the DrawList and builds its pin list in m_SortedComponentPinList. More...
 
SCH_COMPONENTfindNextComponent (EDA_ITEM *aItem, SCH_SHEET_PATH *aSheetPath)
 
void eraseDuplicatePins ()
 Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i.e. More...
 
bool addPinToComponentPinList (SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
 Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList. More...
 
void findAllUnitsOfComponent (SCH_COMPONENT *aComponent, LIB_PART *aEntry, SCH_SHEET_PATH *aSheetPath)
 Function findAllUnitsOfComponent is used for "multiple parts per package" components. More...
 

Static Protected Member Functions

static void sprintPinNetName (wxString &aResult, const wxString &aNetNameFormat, NETLIST_OBJECT *aPin, bool aUseNetcodeAsNetName=false)
 Function sprintPinNetName formats the net name for aPin using aNetNameFormat into aResult. More...
 

Protected Attributes

NETLIST_OBJECT_LISTm_masterList
 
NETLIST_OBJECTS m_SortedComponentPinList
 yes ownership, connected items flat list More...
 
UNIQUE_STRINGS m_ReferencesAlreadyFound
 Used for "multi parts per package" components, avoids processing a lib component more than once. More...
 
std::set< LIB_PART *, LIB_PART_LESS_THANm_LibParts
 unique library parts used. LIB_PART items are sorted by names More...
 

Detailed Description

NETLIST_EXPORTER is a abstract class used for the netlist exporters that eeschema supports.

Definition at line 87 of file netlist_exporter.h.

Constructor & Destructor Documentation

◆ NETLIST_EXPORTER()

NETLIST_EXPORTER::NETLIST_EXPORTER ( NETLIST_OBJECT_LIST aMasterList)
inline

Constructor.

Parameters
aMasterListwe take ownership of this here.
aLibTableis the symbol library table of the project.

Definition at line 174 of file netlist_exporter.h.

174  :
175  m_masterList( aMasterList )
176  {
177  wxASSERT( aMasterList );
178  }
NETLIST_OBJECT_LIST * m_masterList

◆ ~NETLIST_EXPORTER()

virtual NETLIST_EXPORTER::~NETLIST_EXPORTER ( )
inlinevirtual

Definition at line 180 of file netlist_exporter.h.

181  {
182  delete m_masterList; // I own the list itself in this instance.
183  }
NETLIST_OBJECT_LIST * m_masterList

References m_masterList.

Member Function Documentation

◆ addPinToComponentPinList()

bool NETLIST_EXPORTER::addPinToComponentPinList ( SCH_COMPONENT Component,
SCH_SHEET_PATH sheet,
LIB_PIN PinEntry 
)
protected

Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList.

A pin description is a pointer to the corresponding structure created by BuildNetList() in the table g_NetObjectslist.

Definition at line 212 of file netlist_exporter.cpp.

214 {
215  // Search the PIN description for Pin in g_NetObjectslist
216  for( unsigned ii = 0; ii < m_masterList->size(); ii++ )
217  {
218  NETLIST_OBJECT* pin = m_masterList->GetItem( ii );
219 
220  if( pin->m_Type != NETLIST_ITEM::PIN )
221  continue;
222 
223  if( pin->m_Link != aComponent )
224  continue;
225 
226  if( pin->m_PinNum != aPin->GetNumber() )
227  continue;
228 
229  // most expensive test at the end.
230  if( pin->m_SheetPath != *aSheetPath )
231  continue;
232 
233  m_SortedComponentPinList.push_back( pin );
234 
235  if( m_SortedComponentPinList.size() >= MAXPIN )
236  {
237  // Log message for Internal error
238  DisplayError( NULL, wxT( "addPinToComponentPinList err: MAXPIN reached" ) );
239  }
240 
241  return true; // we're done, we appended.
242  }
243 
244  return false;
245 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:236
#define MAXPIN
Definition: netlist.h:53
SCH_SHEET_PATH m_SheetPath
NETLIST_OBJECT_LIST * m_masterList
#define NULL
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list
NETLIST_OBJECT * GetItem(unsigned aIdx) const
Acces to an item in list.
NETLIST_ITEM m_Type
SCH_ITEM * m_Link

References DisplayError(), NETLIST_OBJECT_LIST::GetItem(), LIB_PIN::GetNumber(), NETLIST_OBJECT::m_Link, m_masterList, NETLIST_OBJECT::m_PinNum, NETLIST_OBJECT::m_SheetPath, m_SortedComponentPinList, NETLIST_OBJECT::m_Type, MAXPIN, NULL, and PIN.

Referenced by CreatePinList(), and findAllUnitsOfComponent().

◆ CreatePinList()

void NETLIST_EXPORTER::CreatePinList ( SCH_COMPONENT aItem,
SCH_SHEET_PATH aSheetPath 
)
protected

Function findNextComponentAndCreatePinList finds a component from the DrawList and builds its pin list in m_SortedComponentPinList.

This list is sorted by pin num. the component is the next actual component after aItem (power symbols and virtual components that have their reference starting by '#'are skipped).

Definition at line 150 of file netlist_exporter.cpp.

151 {
152  wxString ref( comp->GetRef( aSheetPath ) );
153 
154  // Power symbols and other components which have the reference starting
155  // with "#" are not included in netlist (pseudo or virtual components)
156 
157  if( ref[0] == wxChar( '#' ) )
158  return;
159 
160  // if( Component->m_FlagControlMulti == 1 )
161  // continue; /* yes */
162  // removed because with multiple instances of one schematic
163  // (several sheets pointing to 1 screen), this will be erroneously be
164  // toggled.
165 
166  if( !comp->GetPartRef() )
167  return;
168 
169  m_SortedComponentPinList.clear();
170 
171  // If component is a "multi parts per package" type
172  if( comp->GetPartRef()->GetUnitCount() > 1 )
173  {
174  // test if this reference has already been processed, and if so skip
175  if( m_ReferencesAlreadyFound.Lookup( ref ) )
176  return;
177 
178  // Collect all pins for this reference designator by searching
179  // the entire design for other parts with the same reference designator.
180  // This is only done once, it would be too expensive otherwise.
181  findAllUnitsOfComponent( comp, comp->GetPartRef().get(), aSheetPath );
182  }
183 
184  else // entry->GetUnitCount() <= 1 means one part per package
185  {
186  LIB_PINS pins; // constructed once here
187 
188  comp->GetPartRef()->GetPins(
189  pins, comp->GetUnitSelection( aSheetPath ), comp->GetConvert() );
190 
191  for( size_t i = 0; i < pins.size(); i++ )
192  {
193  LIB_PIN* pin = pins[i];
194 
195  wxASSERT( pin->Type() == LIB_PIN_T );
196 
197  addPinToComponentPinList( comp, aSheetPath, pin );
198  }
199  }
200 
201  // Sort pins in m_SortedComponentPinList by pin number
203 
204  // Remove duplicate Pins in m_SortedComponentPinList
206 
207  // record the usage of this library component entry.
208  m_LibParts.insert( comp->GetPartRef().get() ); // rejects non-unique pointers
209 }
bool Lookup(const wxString &aString)
Function Lookup returns true if aString already exists in the set, otherwise returns false and adds a...
UNIQUE_STRINGS m_ReferencesAlreadyFound
Used for "multi parts per package" components, avoids processing a lib component more than once.
std::vector< LIB_PIN * > LIB_PINS
Helper for defining a list of pin object pointers.
Definition: lib_item.h:54
void findAllUnitsOfComponent(SCH_COMPONENT *aComponent, LIB_PART *aEntry, SCH_SHEET_PATH *aSheetPath)
Function findAllUnitsOfComponent is used for "multiple parts per package" components.
static bool sortPinsByNum(NETLIST_OBJECT *aPin1, NETLIST_OBJECT *aPin2)
Comparison routine for sorting by pin numbers.
std::set< LIB_PART *, LIB_PART_LESS_THAN > m_LibParts
unique library parts used. LIB_PART items are sorted by names
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list
bool addPinToComponentPinList(SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList...
KICAD_T Type() const
Function Type()
Definition: base_struct.h:207
void eraseDuplicatePins()
Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i....

References addPinToComponentPinList(), eraseDuplicatePins(), findAllUnitsOfComponent(), SCH_COMPONENT::GetConvert(), SCH_COMPONENT::GetPartRef(), SCH_COMPONENT::GetRef(), SCH_COMPONENT::GetUnitSelection(), LIB_PIN_T, UNIQUE_STRINGS::Lookup(), m_LibParts, m_ReferencesAlreadyFound, m_SortedComponentPinList, sortPinsByNum(), and EDA_ITEM::Type().

Referenced by NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().

◆ eraseDuplicatePins()

void NETLIST_EXPORTER::eraseDuplicatePins ( )
protected

Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i.e.

set pointer in this list to NULL). (This is a list of pins found in the whole schematic, for a single component.) These duplicate pins were put in list because some pins (powers... ) are found more than one time when we have a multiple parts per package component. For instance, a 74ls00 has 4 parts, and therefore the VCC pin and GND pin appears 4 times in the list. Note: this list MUST be sorted by pin number (.m_PinNum member value) Also set the m_Flag member of "removed" NETLIST_OBJECT pin item to 1

Definition at line 248 of file netlist_exporter.cpp.

249 {
250  for( unsigned ii = 0; ii < m_SortedComponentPinList.size(); ii++ )
251  {
252  if( m_SortedComponentPinList[ii] == NULL ) /* already deleted */
253  continue;
254 
255  /* Search for duplicated pins
256  * If found, remove duplicates. The priority is to keep connected pins
257  * and remove unconnected
258  * - So this allows (for instance when using multi op amps per package
259  * - to connect only one op amp to power
260  * Because the pin list is sorted by m_PinNum value, duplicated pins
261  * are necessary successive in list
262  */
263  int idxref = ii;
264  for( unsigned jj = ii + 1; jj < m_SortedComponentPinList.size(); jj++ )
265  {
266  if( m_SortedComponentPinList[jj] == NULL ) // Already removed
267  continue;
268 
269  // if other pin num, stop search,
270  // because all pins having the same number are consecutive in list.
271  if( m_SortedComponentPinList[idxref]->m_PinNum != m_SortedComponentPinList[jj]->m_PinNum )
272  break;
273 
274  if( m_SortedComponentPinList[idxref]->GetConnectionType()
276  {
277  m_SortedComponentPinList[jj]->m_Flag = 1;
279  }
280  else /* the reference pin is not connected: remove this pin if the
281  * other pin is connected */
282  {
283  if( m_SortedComponentPinList[jj]->GetConnectionType()
285  {
286  m_SortedComponentPinList[idxref]->m_Flag = 1;
287  m_SortedComponentPinList[idxref] = NULL;
288  idxref = jj;
289  }
290  else // the 2 pins are not connected: remove the tested pin,
291  { // and continue ...
292  m_SortedComponentPinList[jj]->m_Flag = 1;
294  }
295  }
296  }
297  }
298 }
#define NULL
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list

References m_SortedComponentPinList, NULL, and PAD_CONNECT.

Referenced by CreatePinList().

◆ findAllUnitsOfComponent()

void NETLIST_EXPORTER::findAllUnitsOfComponent ( SCH_COMPONENT aComponent,
LIB_PART aEntry,
SCH_SHEET_PATH aSheetPath 
)
protected

Function findAllUnitsOfComponent is used for "multiple parts per package" components.

Search the entire design for all units of aComponent based on matching reference designator, and for each unit, add all its pins to the temporary sorted pin list, m_SortedComponentPinList.

Definition at line 301 of file netlist_exporter.cpp.

303 {
304  wxString ref = aComponent->GetRef( aSheetPath );
305  wxString ref2;
306 
307  SCH_SHEET_LIST sheetList( g_RootSheet );
308 
309  for( unsigned i = 0; i < sheetList.size(); i++ )
310  {
311  for( auto item : sheetList[i].LastScreen()->Items().OfType( SCH_COMPONENT_T ) )
312  {
313  SCH_COMPONENT* comp2 = static_cast<SCH_COMPONENT*>( item );
314 
315  ref2 = comp2->GetRef( &sheetList[i] );
316 
317  if( ref2.CmpNoCase( ref ) != 0 )
318  continue;
319 
320  int unit2 = comp2->GetUnitSelection( &sheetList[i] ); // slow
321 
322  for( LIB_PIN* pin = aEntry->GetNextPin(); pin; pin = aEntry->GetNextPin( pin ) )
323  {
324  wxASSERT( pin->Type() == LIB_PIN_T );
325 
326  if( pin->GetUnit() && pin->GetUnit() != unit2 )
327  continue;
328 
329  if( pin->GetConvert() && pin->GetConvert() != comp2->GetConvert() )
330  continue;
331 
332  // A suitable pin is found: add it to the current list
333  addPinToComponentPinList( comp2, &sheetList[i], pin );
334  }
335  }
336  }
337 }
SCH_SHEET_LIST.
int GetUnitSelection(SCH_SHEET_PATH *aSheet)
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
LIB_PIN * GetNextPin(LIB_PIN *aItem=NULL)
Return the next pin object from the draw list.
SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:89
bool addPinToComponentPinList(SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList...
int GetConvert() const
SCH_SHEET * g_RootSheet

References addPinToComponentPinList(), g_RootSheet, SCH_COMPONENT::GetConvert(), LIB_PART::GetNextPin(), SCH_COMPONENT::GetRef(), SCH_COMPONENT::GetUnitSelection(), LIB_PIN_T, and SCH_COMPONENT_T.

Referenced by CreatePinList().

◆ findNextComponent()

SCH_COMPONENT * NETLIST_EXPORTER::findNextComponent ( EDA_ITEM aItem,
SCH_SHEET_PATH aSheetPath 
)
protected

Definition at line 101 of file netlist_exporter.cpp.

102 {
103  wxString ref;
104 
105  if( aItem->Type() != SCH_COMPONENT_T )
106  return nullptr;
107 
108  // found next component
109  SCH_COMPONENT* comp = (SCH_COMPONENT*) aItem;
110 
111  // Power symbols and other components which have the reference starting
112  // with "#" are not included in netlist (pseudo or virtual components)
113  ref = comp->GetRef( aSheetPath );
114 
115  if( ref[0] == wxChar( '#' ) )
116  return nullptr;
117 
118  // if( Component->m_FlagControlMulti == 1 )
119  // continue; /* yes */
120  // removed because with multiple instances of one schematic
121  // (several sheets pointing to 1 screen), this will be erroneously be
122  // toggled.
123 
124  if( !comp->GetPartRef() )
125  return nullptr;
126 
127  // If component is a "multi parts per package" type
128  if( comp->GetPartRef()->GetUnitCount() > 1 )
129  {
130  // test if this reference has already been processed, and if so skip
131  if( m_ReferencesAlreadyFound.Lookup( ref ) )
132  return nullptr;
133  }
134 
135  // record the usage of this library component entry.
136  m_LibParts.insert( comp->GetPartRef().get() ); // rejects non-unique pointers
137 
138  return comp;
139 }
bool Lookup(const wxString &aString)
Function Lookup returns true if aString already exists in the set, otherwise returns false and adds a...
UNIQUE_STRINGS m_ReferencesAlreadyFound
Used for "multi parts per package" components, avoids processing a lib component more than once.
std::set< LIB_PART *, LIB_PART_LESS_THAN > m_LibParts
unique library parts used. LIB_PART items are sorted by names
std::unique_ptr< LIB_PART > & GetPartRef()
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:89
KICAD_T Type() const
Function Type()
Definition: base_struct.h:207

References SCH_COMPONENT::GetPartRef(), SCH_COMPONENT::GetRef(), UNIQUE_STRINGS::Lookup(), m_LibParts, m_ReferencesAlreadyFound, SCH_COMPONENT_T, and EDA_ITEM::Type().

Referenced by NETLIST_EXPORTER_GENERIC::makeComponents(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().

◆ MakeCommandLine()

wxString NETLIST_EXPORTER::MakeCommandLine ( const wxString &  aFormatString,
const wxString &  aNetlistFile,
const wxString &  aFinalFile,
const wxString &  aProjectDirectory 
)
static

Function MakeCommandLine builds up a string that describes a command line for executing a child process.

The input and output file names along with any options to the executable are all possibly in the returned string.

Parameters
aFormatStringholds:
  • the name of the external program
  • any options needed by that program
  • formatting sequences, see below.
aNetlistFileis the name of the input file for the external program, that is a intermediate netlist file in xml format.
aFinalFileis the name of the output file that the user expects.
aProjectDirectoryis used for P replacement, it should omit the trailing '/'.

Supported formatting sequences and their meaning:

  • B => base filename of selected output file, minus path and extension.
  • I => complete filename and path of the temporary input file.
  • O => complete filename and path of the user chosen output file.
  • P => project directory, without name and without trailing '/'

Definition at line 39 of file netlist_exporter.cpp.

41 {
42  // Expand format symbols in the command line:
43  // %B => base filename of selected output file, minus path and extension.
44  // %P => project directory name, without trailing '/' or '\'.
45  // %I => full filename of the input file (the intermediate net file).
46  // %O => complete filename and path (but without extension) of the user chosen output file.
47 
48  wxString ret = aFormatString;
49  wxFileName in = aNetlistFile;
50  wxFileName out = aFinalFile;
51  wxString str_out = out.GetFullPath();
52 
53  ret.Replace( "%P", aProjectPath, true );
54  ret.Replace( "%B", out.GetName(), true );
55  ret.Replace( "%I", in.GetFullPath(), true );
56 
57 #ifdef __WINDOWS__
58  // A ugly hack to run xsltproc that has a serious bug on Window since a long time:
59  // the filename given after -o option (output filename) cannot use '\' in filename
60  // so replace if by '/' if possible (I mean if the filename does not start by "\\"
61  // that is a filename on a Windows server)
62 
63  if( !str_out.StartsWith( "\\\\" ) )
64  str_out.Replace( "\\", "/" );
65 #endif
66 
67  ret.Replace( "%O", str_out, true );
68 
69  return ret;
70 }

Referenced by SCH_EDIT_FRAME::WriteNetListFile().

◆ sprintPinNetName()

void NETLIST_EXPORTER::sprintPinNetName ( wxString &  aResult,
const wxString &  aNetNameFormat,
NETLIST_OBJECT aPin,
bool  aUseNetcodeAsNetName = false 
)
staticprotected

Function sprintPinNetName formats the net name for aPin using aNetNameFormat into aResult.

Net name is:

  • "?" if pin not connected
  • "netname" for global net (like gnd, vcc ..
  • "/path/netname" for the usual nets

if aUseNetcodeAsNetName is true, the net name is just the net code (SPICE only)

Definition at line 73 of file netlist_exporter.cpp.

76 {
77  int netcode = aPin->GetNet();
78 
79  // Not wxString::Clear(), which would free memory. We want the worst
80  // case wxString memory to grow to avoid reallocation from within the
81  // caller's loop.
82  aResult.Empty();
83 
84  if( netcode != 0 && aPin->GetConnectionType() == NET_CONNECTION::PAD_CONNECT )
85  {
86  if( aUseNetcodeAsNetName )
87  {
88  aResult.Printf( "%d", netcode );
89  }
90  else
91  {
92  aResult = aPin->GetNetName();
93 
94  if( aResult.IsEmpty() ) // No net name: give a name from net code
95  aResult.Printf( aNetNameFormat.GetData(), netcode );
96  }
97  }
98 }
int GetNet() const
NET_CONNECTION GetConnectionType() const
wxString GetNetName(bool adoptTimestamp=false) const
Function GetNetName.

References NETLIST_OBJECT::GetConnectionType(), NETLIST_OBJECT::GetNet(), NETLIST_OBJECT::GetNetName(), and PAD_CONNECT.

Referenced by NETLIST_EXPORTER_PSPICE::Format(), and NETLIST_EXPORTER_ORCADPCB2::WriteNetlist().

◆ WriteNetlist()

virtual bool NETLIST_EXPORTER::WriteNetlist ( const wxString &  aOutFileName,
unsigned  aNetlistOptions 
)
inlinevirtual

Function WriteNetlist writes to specified output file.

Reimplemented in NETLIST_EXPORTER_PSPICE, NETLIST_EXPORTER_GENERIC, NETLIST_EXPORTER_CADSTAR, NETLIST_EXPORTER_KICAD, and NETLIST_EXPORTER_ORCADPCB2.

Definition at line 189 of file netlist_exporter.h.

190  {
191  return false;
192  }

Referenced by SCH_EDIT_FRAME::WriteNetListFile().

Member Data Documentation

◆ m_LibParts

std::set<LIB_PART*, LIB_PART_LESS_THAN> NETLIST_EXPORTER::m_LibParts
protected

unique library parts used. LIB_PART items are sorted by names

Definition at line 103 of file netlist_exporter.h.

Referenced by CreatePinList(), findNextComponent(), NETLIST_EXPORTER_GENERIC::makeLibParts(), and NETLIST_EXPORTER_GENERIC::makeListOfNets().

◆ m_masterList

◆ m_ReferencesAlreadyFound

UNIQUE_STRINGS NETLIST_EXPORTER::m_ReferencesAlreadyFound
protected

Used for "multi parts per package" components, avoids processing a lib component more than once.

Definition at line 100 of file netlist_exporter.h.

Referenced by CreatePinList(), findNextComponent(), NETLIST_EXPORTER_GENERIC::makeComponents(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().

◆ m_SortedComponentPinList

NETLIST_OBJECTS NETLIST_EXPORTER::m_SortedComponentPinList
protected

yes ownership, connected items flat list

Used to temporarily store and filter the list of pins of a schematic component when generating schematic component data in netlist (comp section). No ownership of members. TODO(snh): Descope this object

Definition at line 96 of file netlist_exporter.h.

Referenced by addPinToComponentPinList(), CreatePinList(), eraseDuplicatePins(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().


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