52 void SetDefaultNetclass( std::shared_ptr<NETCLASS> netclass );
55 std::shared_ptr<NETCLASS> GetDefaultNetclass();
58 bool HasNetclass(
const wxString& netclassName )
const;
62 void SetNetclass(
const wxString& netclassName, std::shared_ptr<NETCLASS>& netclass );
66 void SetNetclasses(
const std::map<wxString, std::shared_ptr<NETCLASS>>& netclasses );
69 const std::map<wxString, std::shared_ptr<NETCLASS>>& GetNetclasses()
const;
74 const std::map<wxString, std::shared_ptr<NETCLASS>>& GetCompositeNetclasses()
const;
78 void ClearNetclasses();
81 const std::map<wxString, std::set<wxString>>& GetNetclassLabelAssignments()
const;
85 void ClearNetclassLabelAssignments();
89 void ClearNetclassLabelAssignment(
const wxString& netName );
93 void SetNetclassLabelAssignment(
const wxString& netName,
94 const std::set<wxString>& netclasses );
98 void AppendNetclassLabelAssignment(
const wxString& netName,
99 const std::set<wxString>& netclasses );
102 bool HasNetclassLabelAssignment(
const wxString& netName )
const;
106 void SetNetclassPatternAssignment(
const wxString& pattern,
const wxString& netclass );
110 void SetNetclassPatternAssignments(
111 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>&&
115 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>&
116 GetNetclassPatternAssignments();
119 void ClearNetclassPatternAssignments();
127 void SetChainPatternAssignment(
const wxString& pattern,
const wxString& netclass );
131 void ClearChainPatternAssignments();
137 void ClearCacheForNet(
const wxString& netName );
140 void ClearAllCaches();
144 void SetNetColorAssignment(
const wxString& netName,
const KIGFX::COLOR4D& color );
147 const std::map<wxString, KIGFX::COLOR4D>& GetNetColorAssignments()
const;
151 void ClearNetColorAssignments();
156 if( aClass.IsEmpty() )
181 bool HasEffectiveNetClass(
const wxString& aNetName )
const;
185 std::shared_ptr<NETCLASS> GetCachedEffectiveNetClass(
const wxString& aNetName )
const;
189 std::shared_ptr<NETCLASS> GetEffectiveNetClass(
const wxString& aNetName );
194 void RecomputeEffectiveNetclasses();
202 std::shared_ptr<NETCLASS> GetNetClassByName(
const wxString& aNetName )
const;
214 static bool ParseBusVector(
const wxString& aBus, wxString* aName,
215 std::vector<wxString>* aMemberList );
225 static bool ParseBusGroup(
const wxString& aGroup, wxString*
name,
226 std::vector<wxString>* aMemberList );
240 static void ForEachBusMember(
const wxString& aBusPattern,
241 const std::function<
void(
const wxString& )>& aFunction );
244 bool migrateSchema0to1();
245 bool migrateSchema1to2();
246 bool migrateSchema2to3();
247 bool migrateSchema3to4();
248 bool migrateSchema4to5();
259 void makeEffectiveNetclass( std::shared_ptr<NETCLASS>& effectiveNetclass,
260 std::vector<NETCLASS*>& netclasses )
const;
264 bool addMissingDefaults(
NETCLASS* nc )
const;
267 void addSinglePatternAssignment(
const wxString& pattern,
const wxString& netclass );
270 void addSingleChainPatternAssignment(
const wxString& pattern,
const wxString& netclass );
282 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>
290 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>