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

Container for NETINFO_ITEM elements, which are the nets. More...

#include <netinfo.h>

Classes

class  iterator
 Wrapper class, so you can iterate through NETINFO_ITEM*s, not std::pair<int/wxString, NETINFO_ITEM*> More...
 

Public Member Functions

 NETINFO_LIST (BOARD *aParent)
 
 ~NETINFO_LIST ()
 
NETINFO_ITEMGetNetItem (int aNetCode) const
 
NETINFO_ITEMGetNetItem (const wxString &aNetName) const
 
unsigned GetNetCount () const
 
const NETNAMES_MAPNetsByName () const
 Return the name map, at least for python.
 
const NETCODES_MAPNetsByNetcode () const
 Return the netcode map, at least for python.
 
void RebuildDisplayNetnames () const
 
bool RenameNets (const std::map< wxString, wxString > &aNewNames, REPORTER &aReporter)
 Rename nets in place, keeping the name lookup in sync.
 
iterator begin () const
 
iterator end () const
 
BOARDGetParent () const
 

Static Public Member Functions

static NETINFO_ITEMOrphanedItem ()
 NETINFO_ITEM meaning that there was no net assigned for an item, as there was no board storing net list available.
 

Public Attributes

bool m_DisplayNetnamesDirty
 

Static Public Attributes

static const int UNCONNECTED = 0
 Constant that holds the "unconnected net" number (typically 0) all items "connected" to this net are actually not connected items.
 
static const int ORPHANED = -1
 Constant that forces initialization of a netinfo item to the NETINFO_ITEM ORPHANED (typically -1) when calling SetNetCode on board connected items.
 

Protected Member Functions

void AppendNet (NETINFO_ITEM *aNewElement)
 Add aNewElement to the end of the net list.
 
void RemoveNet (NETINFO_ITEM *aNet)
 Remove a net from the net list.
 
void RemoveUnusedNets (BOARD_COMMIT *aCommit)
 

Private Member Functions

void clear ()
 Delete the list of nets (and free memory).
 
void detachAll ()
 Drop all entries from the lookup maps without freeing the items.
 
void buildListOfNets ()
 Rebuild the list of NETINFO_ITEMs.
 
int getFreeNetCode ()
 Return the first available net code that is not used by any other net.
 

Private Attributes

BOARDm_parent
 
NETNAMES_MAP m_netNames
 map of <wxString, NETINFO_ITEM*>, is NETINFO_ITEM owner
 
NETCODES_MAP m_netCodes
 map of <int, NETINFO_ITEM*> is NOT owner
 
int m_newNetCode
 possible value for new net code assignment
 

Friends

class BOARD
 

Detailed Description

Container for NETINFO_ITEM elements, which are the nets.

Definition at line 230 of file netinfo.h.

Constructor & Destructor Documentation

◆ NETINFO_LIST()

NETINFO_LIST::NETINFO_LIST ( BOARD * aParent)

Definition at line 39 of file netinfo_list.cpp.

References AppendNet(), BOARD, m_newNetCode, and m_parent.

◆ ~NETINFO_LIST()

NETINFO_LIST::~NETINFO_LIST ( )

Definition at line 48 of file netinfo_list.cpp.

References clear().

Member Function Documentation

◆ AppendNet()

void NETINFO_LIST::AppendNet ( NETINFO_ITEM * aNewElement)
protected

Add aNewElement to the end of the net list.

Negative net code means it is going to be auto-assigned.

Definition at line 154 of file netinfo_list.cpp.

References getFreeNetCode(), NETINFO_ITEM::GetNetCode(), GetNetItem(), NETINFO_ITEM::GetNetname(), m_DisplayNetnamesDirty, NETINFO_ITEM::m_netCode, m_netCodes, and m_netNames.

Referenced by NETINFO_LIST().

◆ begin()

iterator NETINFO_LIST::begin ( ) const
inline

Definition at line 350 of file netinfo.h.

References m_netNames.

Referenced by DSN::SPECCTRA_DB::FromBOARD().

◆ buildListOfNets()

void NETINFO_LIST::buildListOfNets ( )
private

◆ clear()

void NETINFO_LIST::clear ( )
private

Delete the list of nets (and free memory).

Definition at line 54 of file netinfo_list.cpp.

References detachAll(), and m_netNames.

Referenced by ~NETINFO_LIST().

◆ detachAll()

void NETINFO_LIST::detachAll ( )
private

Drop all entries from the lookup maps without freeing the items.

Used when ownership of the contained NETINFO_ITEMs is being transferred to a caller that will free them after some intermediate operation (for example, after dispatching listener notifications that need live pointers).

Definition at line 65 of file netinfo_list.cpp.

References m_netCodes, m_netNames, and m_newNetCode.

Referenced by clear().

◆ end()

iterator NETINFO_LIST::end ( ) const
inline

Definition at line 355 of file netinfo.h.

References m_netNames.

Referenced by DSN::SPECCTRA_DB::FromBOARD().

◆ getFreeNetCode()

int NETINFO_LIST::getFreeNetCode ( )
private

Return the first available net code that is not used by any other net.

Definition at line 305 of file netinfo_list.cpp.

References m_netCodes, and m_newNetCode.

Referenced by AppendNet().

◆ GetNetCount()

unsigned NETINFO_LIST::GetNetCount ( ) const
inline
Returns
the number of nets ( always >= 1 ) because the first net is the "not connected" net and always exists

Definition at line 254 of file netinfo.h.

References m_netNames.

Referenced by buildListOfNets(), FABMASTER::loadZones(), and BOARD::operator==().

◆ GetNetItem() [1/2]

NETINFO_ITEM * NETINFO_LIST::GetNetItem ( const wxString & aNetName) const
Parameters
aNetNamenet name to identify a given NETINFO_ITEM.
Returns
net item by aNetName, or NULL if not found.

Definition at line 84 of file netinfo_list.cpp.

References m_netNames, and result.

◆ GetNetItem() [2/2]

NETINFO_ITEM * NETINFO_LIST::GetNetItem ( int aNetCode) const

◆ GetParent()

BOARD * NETINFO_LIST::GetParent ( ) const
inline

Definition at line 360 of file netinfo.h.

References BOARD, and m_parent.

◆ NetsByName()

const NETNAMES_MAP & NETINFO_LIST::NetsByName ( ) const
inline

◆ NetsByNetcode()

const NETCODES_MAP & NETINFO_LIST::NetsByNetcode ( ) const
inline

Return the netcode map, at least for python.

Definition at line 260 of file netinfo.h.

References m_netCodes.

Referenced by PCB_PROPERTIES_PANEL::updateLists().

◆ OrphanedItem()

static NETINFO_ITEM * NETINFO_LIST::OrphanedItem ( )
inlinestatic

NETINFO_ITEM meaning that there was no net assigned for an item, as there was no board storing net list available.

Definition at line 288 of file netinfo.h.

References UNCONNECTED.

Referenced by BOOST_AUTO_TEST_CASE(), PNS_KICAD_IFACE::createBoardItem(), BOARD::FindNet(), PNS_KICAD_IFACE_BASE::GetOrphanedNetHandle(), PCB_IO_GEDA::parseLayer(), PCB_IO_GEDA::parseVia(), PCB_CONTROL::Paste(), and BOARD_CONNECTED_ITEM::SetNetCode().

◆ RebuildDisplayNetnames()

void NETINFO_LIST::RebuildDisplayNetnames ( ) const

◆ RemoveNet()

void NETINFO_LIST::RemoveNet ( NETINFO_ITEM * aNet)
protected

Remove a net from the net list.

Definition at line 95 of file netinfo_list.cpp.

References m_DisplayNetnamesDirty, NETINFO_ITEM::m_netCode, m_netCodes, m_netNames, and m_newNetCode.

◆ RemoveUnusedNets()

void NETINFO_LIST::RemoveUnusedNets ( BOARD_COMMIT * aCommit)
protected

Definition at line 128 of file netinfo_list.cpp.

References m_DisplayNetnamesDirty, m_netCodes, m_netNames, and COMMIT::Removed().

◆ RenameNets()

bool NETINFO_LIST::RenameNets ( const std::map< wxString, wxString > & aNewNames,
REPORTER & aReporter )

Rename nets in place, keeping the name lookup in sync.

Net codes, item connectivity and net ownership are untouched, so renaming never moves copper between nets. Source names that no net carries are ignored. The whole batch is rejected, leaving every net unchanged, if a target name is empty, names the unconnected net, or collides with another net.

Parameters
aNewNamesmaps each existing net name to the name it should carry.
aReporterreceives the reason a rejected batch was rejected.
Returns
true if the batch was applied.

Definition at line 317 of file netinfo_list.cpp.

References _, NETINFO_ITEM::GetNetCode(), GetNetItem(), m_DisplayNetnamesDirty, m_netNames, REPORTER::Report(), RPT_SEVERITY_ERROR, and traceImportNetNames.

Friends And Related Symbol Documentation

◆ BOARD

friend class BOARD
friend

Definition at line 232 of file netinfo.h.

References BOARD.

Referenced by BOARD, GetParent(), and NETINFO_LIST().

Member Data Documentation

◆ m_DisplayNetnamesDirty

bool NETINFO_LIST::m_DisplayNetnamesDirty
mutable

Definition at line 407 of file netinfo.h.

Referenced by AppendNet(), RebuildDisplayNetnames(), RemoveNet(), RemoveUnusedNets(), and RenameNets().

◆ m_netCodes

NETCODES_MAP NETINFO_LIST::m_netCodes
private

map of <int, NETINFO_ITEM*> is NOT owner

Definition at line 413 of file netinfo.h.

Referenced by AppendNet(), detachAll(), getFreeNetCode(), GetNetItem(), NetsByNetcode(), RemoveNet(), and RemoveUnusedNets().

◆ m_netNames

NETNAMES_MAP NETINFO_LIST::m_netNames
private

map of <wxString, NETINFO_ITEM*>, is NETINFO_ITEM owner

Definition at line 412 of file netinfo.h.

Referenced by AppendNet(), begin(), clear(), detachAll(), end(), GetNetCount(), GetNetItem(), NetsByName(), RemoveNet(), RemoveUnusedNets(), and RenameNets().

◆ m_newNetCode

int NETINFO_LIST::m_newNetCode
private

possible value for new net code assignment

Definition at line 415 of file netinfo.h.

Referenced by detachAll(), getFreeNetCode(), NETINFO_LIST(), and RemoveNet().

◆ m_parent

BOARD* NETINFO_LIST::m_parent
private

Definition at line 410 of file netinfo.h.

Referenced by buildListOfNets(), GetParent(), and NETINFO_LIST().

◆ ORPHANED

const int NETINFO_LIST::ORPHANED = -1
static

Constant that forces initialization of a netinfo item to the NETINFO_ITEM ORPHANED (typically -1) when calling SetNetCode on board connected items.

Definition at line 284 of file netinfo.h.

Referenced by FOOTPRINT::ClearAllNets(), DRAWING_TOOL::DrawVia(), PCB_IO_KICAD_SEXPR_PARSER::parsePAD(), BOARD::SanitizeNetcodes(), and PANEL_SETUP_ZONES::TransferDataFromWindow().

◆ UNCONNECTED


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