39 wxASSERT( wxThread::IsMain() );
46 const auto frame =
m_inputs.Capture( aPaths, aTextEpoch );
48 const auto& records =
m_records.Records();
50 m_bundles.UpdateBatch( bundles, [&](
const auto& missing )
52 std::vector<BUNDLE_INPUT> inputs;
53 inputs.reserve( missing.size() );
55 for(
const PARTITION* partition : missing )
58 std::vector<BUNDLE_BINDING> values( missing.size() );
59 ParallelFor( values.size(), [&](
size_t i ) { values[i] = BindBundle( inputs[i], m_keys ); } );
64 m_signals.UpdateBatch( signals, [&](
const auto& missing )
66 std::vector<SIGNAL_RESULT> values( missing.size() );
69 values[i] = DeriveSignal( *missing[i], records, m_slots.Slots(), m_keys );
84 wxASSERT( wxThread::IsMain() );
85 const auto component =
m_published.Components().find( aComponent );
90 const auto& content = *component->second.content;
93 for(
const RECORD_KEY& record : content.records )
95 const auto& claims =
m_records.Records().Entries().at( record )->value.claims;
97 for(
const CLAIM& claim : claims )
100 result.push_back( claim );
106 for(
const SLOT_KEY& slot : content.slots )
107 result.push_back(
m_slots.Slots().Entries().at( slot )->value.claim );
111 std::stable_sort(
result.begin(),
result.end(), [&](
const CLAIM& a,
const CLAIM& b ) { return less( b, a ); } );
117 wxASSERT( wxThread::IsMain() );
129 if( aRetainSourceValues )
COMPONENT_CACHE< SIGNAL_RESULT > m_signals
void clearStages(bool aRetainSourceValues=false)
PARTITIONER m_partitioner
void Update(const SCH_SHEET_LIST &aPaths, uint64_t aTextEpoch, const BUS_ALIASES &aAliases, bool aRebuild=false)
Refresh inputs, bundle slots and signal summaries with the source text epoch and effective aliases.
COMPONENT_CACHE< BUNDLE_BINDING > m_bundles
std::vector< CLAIM > DriverCandidates(NODE_ID aComponent) const
Owned eligible claims of one published component, strongest first.
CACHE_VERSIONS m_versions
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
Value keys and the key session of the schematic connectivity engine.
std::map< wxString, std::vector< wxString > > BUS_ALIASES
Bus alias table, from alias name to member texts.
BUNDLE_INPUT PrepareBundle(const PARTITION &aPartition, const RECORD_STORE::RECORD_CACHE &aRecords, SESSION_KEYS &aKeys)
Collect the bus claims of a bundle partition and intern their leaf names on the main thread.
void ParallelFor(size_t aCount, FUNCTION &&aFunction, thread_pool &aPool=GetKiCadThreadPool())
Independent ordinal writes only; preparation and cache commits stay on the caller thread.
uint32_t NODE_ID
Session handle of a NODE_KEY graph node.
std::vector< NODE_INPUT > SignalNodes(const RECORD_STORE::RECORD_CACHE &aRecords, const SLOT_STORE::SLOT_CACHE &aSlots, SESSION_KEYS &aKeys)
Main-thread interning of current signal records and slots for the signal fold.
std::vector< NODE_INPUT > RecordNodes(const RECORD_STORE::RECORD_CACHE &aRecords, KIND aKind, SESSION_KEYS &aKeys)
Main-thread node interning for one record stratum.
Strict weak order on claims by value.
The claim of one item for the name of its island.
Exact identity of one connected component.
One island in one sheet instance.
One member position of a bus.
wxString result
Test unit parsing edge cases and error handling.