51 std::shared_ptr<const COMPONENT_CONTENT>
content;
80 std::shared_ptr<const BUS_SCHEMA>
schema;
122 using ROWS = std::map<ITEM_KEY, ITEM_RESULT, KEY_LESS>;
136 std::optional<NODE_ID>
FindByName(
const wxString& aName )
const;
152 using SLOT_INPUTS = std::map<SLOT_KEY, const SLOT_INPUT*, KEY_LESS>;
162 std::optional<std::pair<KIID, ITEM_RESULT>>
driver;
Source-keyed publication independent of electrical component identity.
Cache current component evaluations by exact node/version identity, within one stratum and key sessio...
const NAME_INDEX & ByName() const
const CLASS_ASSIGNMENTS & Netclasses() const
ROW_UPDATE PrepareRows(const COMPONENTS &aCurrent, const RECORD_STORE::RECORD_CACHE &aRecords, const SLOT_INPUTS &aSlots, CHANGE_SET &aChanges)
COMPONENT_LINKS m_busMembers
std::map< SLOT_KEY, NODE_ID, KEY_LESS > SLOT_INDEX
std::span< const NODE_ID > MembersOf(NODE_ID aBundle) const
std::map< NAME_ID, std::shared_ptr< const std::vector< NAME_ID > >, NAME_LESS > CLASS_ASSIGNMENTS
std::map< NODE_ID, uint64_t > m_versions
SLOT_INDEX m_slotComponents
std::map< ITEM_KEY, ITEM_RESULT, KEY_LESS > ROWS
std::map< RECORD_KEY, std::shared_ptr< const ROW_INPUT >, KEY_LESS > ROW_INPUTS
void Update(const COMPONENT_CACHE< BUNDLE_BINDING > &aBundles, const COMPONENT_CACHE< SIGNAL_RESULT > &aSignals, const RECORD_STORE::RECORD_CACHE &aRecords, std::span< const FRAME_INSTANCE > aFrame, const INPUT_STORE &aInputs)
std::map< NAME_ID, NODE_ID, NAME_LESS > NAME_INDEX
PUBLICATION(SESSION_KEYS &aKeys)
EQUIVALENT_BUSES m_equivalentBuses
uint32_t m_nextSubgraphCode
Never reset, so codes do not repeat.
std::map< BUS_SIGNATURE, std::set< NODE_ID > > EQUIVALENT_BUSES
std::map< NODE_ID, std::vector< NODE_ID > > COMPONENT_LINKS
std::pair< NAME_ID, std::vector< NAME_ID > > BUS_SIGNATURE
const ROWS & Rows() const
const COMPONENTS & Components() const
CLASS_ASSIGNMENTS m_netclasses
std::vector< wxString > EquivalentBusNames(const wxString &aName) const
const AUXILIARY & Auxiliary() const
void ApplyRows(ROW_UPDATE &&aUpdate)
std::map< SLOT_KEY, const SLOT_INPUT *, KEY_LESS > SLOT_INPUTS
COMPONENT_LINKS m_busParents
std::map< NODE_ID, PUBLISHED_COMPONENT > COMPONENTS
std::span< const NODE_ID > ParentsOf(NODE_ID aSignal) const
const SLOT_INDEX & SlotComponents() const
int m_nextNetCode
Never reset, so codes do not repeat.
std::map< NODE_ID, EQUIVALENT_BUSES::iterator > BUS_SIGNATURES
BUS_SIGNATURES m_busSignatures
const CHANGE_SET & Changes() const
void UpdateBusSignatures(const COMPONENTS &aCurrent, const SLOT_INPUTS &aSlots)
void UpdateIndexes(const COMPONENTS &aCurrent, const SLOT_INPUTS &aSlots)
std::optional< NODE_ID > FindByName(const wxString &aName) const
CACHE_TABLE< RECORD_KEY, ISLAND_RECORD, KEY_LESS > RECORD_CACHE
Session IDs are dense handles, never a canonical ordering.
Value keys and the key session of the schematic connectivity engine.
uint32_t NAME_ID
Session handle of a name, ordered by UTF-8 value through NAME_LESS.
uint32_t NODE_ID
Session handle of a NODE_KEY graph node.
KIND
The electrical type of a record or component.
constexpr uint32_t INVALID_ID
Marks an unset handle.
wxString ApplyNameSuffix(const wxString &aName, const BUS_SCHEMA *aSchema, uint32_t aSuffix)
Add "_N" to aName.
The parsed form of one bus text.
Difference between two publications.
std::optional< SLOT_KEY > nameSlot
bool operator==(const COMPONENT_CONTENT &) const =default
std::vector< RECORD_KEY > records
std::vector< SLOT_KEY > members
std::optional< CLAIM > best
std::vector< NAME_ID > netclasses
std::vector< SLOT_KEY > slots
std::vector< ITEM_KEY > items
One item or pin in one sheet instance.
Bus claim of an island that has the canonical shape but a different name.
bool operator==(const BUS_SOURCE &aOther) const
std::shared_ptr< const BUS_SCHEMA > schema
Published connection of one item on one sheet instance.
std::shared_ptr< const std::vector< NAME_ID > > netclasses
std::shared_ptr< const BUS_SOURCE > busSource
NAME_ID localName
Best island claim, or the group winner.
NAME_ID fullLocalName
localName with the component suffix.
bool operator==(const ITEM_RESULT &aOther) const
NAME_ID name
Published name with its suffix.
std::optional< ITEM_KEY > driver
Source of the best component claim.
Orders keys by value through SESSION_KEYS::Less().
Orders name handles by UTF-8 value.
CLASS_ASSIGNMENTS netclasses
std::vector< ITEM_KEY > removed
ROW_UPDATE(const SESSION_KEYS &aKeys)
std::vector< RECORD_KEY > removedInputs
One published net or bus with its identity.
bool operator==(const PUBLISHED_COMPONENT &aOther) const
NAME_ID baseName
Name before the suffix.
int netCode
Zero for a bus or without a claim.
uint32_t suffix
Zero for the holder of the base name.
std::optional< SLOT_KEY > nameSlot
Selected naming slot, lowest parent suffix first.
uint32_t subgraphCode
Zero without a claim.
NAME_ID name
Unique name, invalid without a claim.
std::shared_ptr< const COMPONENT_CONTENT > content
NAME_ID collisionBase
Bucket for duplicate names.