KiCad PCB EDA Suite
NETCLASSES Class Reference

Class NETCLASSES is a container for NETCLASS instances. More...

#include <netclass.h>

Public Types

typedef NETCLASS_MAP::iterator iterator
 
typedef NETCLASS_MAP::const_iterator const_iterator
 

Public Member Functions

 NETCLASSES ()
 
 ~NETCLASSES ()
 
void Clear ()
 Function Clear destroys any contained NETCLASS instances except the Default one. More...
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
unsigned GetCount () const
 Function GetCount. More...
 
NETCLASSPTR GetDefault () const
 Function GetDefault. More...
 
bool Add (const NETCLASSPTR &aNetclass)
 Function Add takes aNetclass and puts it into this NETCLASSES container. More...
 
NETCLASSPTR Remove (const wxString &aNetName)
 Function Remove removes a NETCLASS from this container but does not destroy/delete it. More...
 
NETCLASSPTR Find (const wxString &aName) const
 Function Find searches this container for a NETCLASS given by aName. More...
 
NETCLASS_MAP & NetClasses ()
 Provide public access to m_NetClasses so it gets swigged. More...
 

Private Attributes

NETCLASS_MAP m_NetClasses
 all the NETCLASSes except the default one. More...
 
NETCLASSPTR m_default
 the default NETCLASS More...
 

Detailed Description

Class NETCLASSES is a container for NETCLASS instances.

It owns all its NETCLASSes (=> it will delete them at time of destruction). This container will always have a default NETCLASS with the name given by const NETCLASS::Default.

Definition at line 224 of file netclass.h.

Member Typedef Documentation

typedef NETCLASS_MAP::const_iterator NETCLASSES::const_iterator

Definition at line 251 of file netclass.h.

typedef NETCLASS_MAP::iterator NETCLASSES::iterator

Definition at line 247 of file netclass.h.

Constructor & Destructor Documentation

NETCLASSES::NETCLASSES ( )

Definition at line 93 of file netclass.cpp.

References NETCLASS::Default.

94 {
95  m_default = std::make_shared<NETCLASS>( NETCLASS::Default );
96 }
NETCLASSPTR m_default
the default NETCLASS
Definition: netclass.h:232
static const char Default[]
the name of the default NETCLASS
Definition: netclass.h:80
NETCLASSES::~NETCLASSES ( )

Definition at line 99 of file netclass.cpp.

100 {
101 }

Member Function Documentation

bool NETCLASSES::Add ( const NETCLASSPTR &  aNetclass)

Function Add takes aNetclass and puts it into this NETCLASSES container.

Parameters
aNetclassis netclass to add
Returns
true if the name within aNetclass is unique and it could be inserted OK, else false because the name was not unique.

Definition at line 104 of file netclass.cpp.

References NETCLASS::Default, and name.

Referenced by LEGACY_PLUGIN::loadNETCLASS(), PARAM_CFG_NETCLASSES::ReadParam(), and PANEL_SETUP_NETCLASSES::TransferDataFromWindow().

105 {
106  const wxString& name = aNetClass->GetName();
107 
108  if( name == NETCLASS::Default )
109  {
110  m_default = aNetClass;
111  return true;
112  }
113 
114  // Test for an existing netclass:
115  if( !Find( name ) )
116  {
117  // name not found, take ownership
118  m_NetClasses[name] = aNetClass;
119 
120  return true;
121  }
122  else
123  {
124  // name already exists
125  // do not "take ownership" and return false telling caller such.
126  return false;
127  }
128 }
NETCLASSPTR Find(const wxString &aName) const
Function Find searches this container for a NETCLASS given by aName.
Definition: netclass.cpp:146
NETCLASSPTR m_default
the default NETCLASS
Definition: netclass.h:232
static const char Default[]
the name of the default NETCLASS
Definition: netclass.h:80
const char * name
Definition: DXF_plotter.cpp:61
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
const_iterator NETCLASSES::begin ( ) const
inline

Definition at line 252 of file netclass.h.

References begin(), and BOARD_DESIGN_SETTINGS::m_NetClasses.

252 { return m_NetClasses.begin(); }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
void NETCLASSES::Clear ( )
inline

Function Clear destroys any contained NETCLASS instances except the Default one.

Definition at line 242 of file netclass.h.

References BOARD_DESIGN_SETTINGS::m_NetClasses.

Referenced by PCBNEW_CONTROL::AppendBoard(), PCB_EDIT_FRAME::AppendBoardFile(), PARAM_CFG_NETCLASSES::ReadParam(), and PANEL_SETUP_NETCLASSES::TransferDataFromWindow().

243  {
244  m_NetClasses.clear();
245  }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
const_iterator NETCLASSES::end ( ) const
inline

Definition at line 253 of file netclass.h.

References end(), and BOARD_DESIGN_SETTINGS::m_NetClasses.

253 { return m_NetClasses.end(); }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
NETCLASSPTR NETCLASSES::Find ( const wxString &  aName) const

Function Find searches this container for a NETCLASS given by aName.

Parameters
aNameis the name of the NETCLASS to search for.
Returns
NETCLASSPTR - if found, else NULL.

Definition at line 146 of file netclass.cpp.

References NETCLASS::Default.

Referenced by BOARD_DESIGN_SETTINGS::GetCurrentMicroViaDrill(), BOARD_DESIGN_SETTINGS::GetCurrentMicroViaSize(), PNS::SIZES_SETTINGS::Init(), PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER(), BOARD_DESIGN_SETTINGS::SetCurrentNetClass(), BOARD::SynchronizeNetsAndNetClasses(), and PANEL_SETUP_NETCLASSES::TransferDataFromWindow().

147 {
148  if( aName == NETCLASS::Default )
149  return GetDefault();
150 
151  NETCLASS_MAP::const_iterator found = m_NetClasses.find( aName );
152 
153  if( found == m_NetClasses.end() )
154  return NETCLASSPTR();
155  else
156  return found->second;
157 }
static const char Default[]
the name of the default NETCLASS
Definition: netclass.h:80
NETCLASSPTR GetDefault() const
Function GetDefault.
Definition: netclass.h:268
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
unsigned NETCLASSES::GetCount ( ) const
inline

Function GetCount.

Returns
the number of netclasses, excluding the default one.

Definition at line 259 of file netclass.h.

References BOARD_DESIGN_SETTINGS::m_NetClasses.

Referenced by DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::buildNetclassesGrid(), and PANEL_SETUP_NETCLASSES::TransferDataToWindow().

260  {
261  return m_NetClasses.size();
262  }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
NETCLASS_MAP& NETCLASSES::NetClasses ( )
inline

Provide public access to m_NetClasses so it gets swigged.

Definition at line 299 of file netclass.h.

References BOARD_DESIGN_SETTINGS::m_NetClasses.

299 { return m_NetClasses; }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229
NETCLASSPTR NETCLASSES::Remove ( const wxString &  aNetName)

Function Remove removes a NETCLASS from this container but does not destroy/delete it.

Parameters
aNetNameis the name of the net to delete, and it may not be NETCLASS::Default.
Returns
NETCLASSPTR - the NETCLASS associated with aNetName if found and removed, else NULL.

Definition at line 131 of file netclass.cpp.

132 {
133  NETCLASS_MAP::iterator found = m_NetClasses.find( aNetName );
134 
135  if( found != m_NetClasses.end() )
136  {
137  std::shared_ptr<NETCLASS> netclass = found->second;
138  m_NetClasses.erase( found );
139  return netclass;
140  }
141 
142  return NETCLASSPTR();
143 }
NETCLASS_MAP m_NetClasses
all the NETCLASSes except the default one.
Definition: netclass.h:229

Member Data Documentation

NETCLASSPTR NETCLASSES::m_default
private

the default NETCLASS

Definition at line 232 of file netclass.h.

NETCLASS_MAP NETCLASSES::m_NetClasses
private

all the NETCLASSes except the default one.

Definition at line 229 of file netclass.h.

Referenced by BOARD::SynchronizeNetsAndNetClasses().


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