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();
134 void ClearCacheForNet(
const wxString& netName );
137 void ClearAllCaches();
141 void SetNetColorAssignment(
const wxString& netName,
const KIGFX::COLOR4D& color );
144 const std::map<wxString, KIGFX::COLOR4D>& GetNetColorAssignments()
const;
148 void ClearNetColorAssignments();
153 if( aClass.IsEmpty() )
178 bool HasEffectiveNetClass(
const wxString& aNetName )
const;
182 std::shared_ptr<NETCLASS> GetCachedEffectiveNetClass(
const wxString& aNetName )
const;
186 std::shared_ptr<NETCLASS> GetEffectiveNetClass(
const wxString& aNetName );
191 void RecomputeEffectiveNetclasses();
199 std::shared_ptr<NETCLASS> GetNetClassByName(
const wxString& aNetName )
const;
211 static bool ParseBusVector(
const wxString& aBus, wxString* aName,
212 std::vector<wxString>* aMemberList );
222 static bool ParseBusGroup(
const wxString& aGroup, wxString*
name,
223 std::vector<wxString>* aMemberList );
237 static void ForEachBusMember(
const wxString& aBusPattern,
238 const std::function<
void(
const wxString& )>& aFunction );
241 bool migrateSchema0to1();
242 bool migrateSchema1to2();
243 bool migrateSchema2to3();
244 bool migrateSchema3to4();
245 bool migrateSchema4to5();
256 void makeEffectiveNetclass( std::shared_ptr<NETCLASS>& effectiveNetclass,
257 std::vector<NETCLASS*>& netclasses )
const;
261 bool addMissingDefaults(
NETCLASS* nc )
const;
264 void addSinglePatternAssignment(
const wxString& pattern,
const wxString& netclass );
267 void addSingleChainPatternAssignment(
const wxString& pattern,
const wxString& netclass );
279 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>
287 std::vector<std::pair<std::unique_ptr<EDA_COMBINED_MATCHER>, wxString>>