21 size_t tileTypeCount = tileTypes.size();
25 tileTypeDbs.resize(tileTypeCount);
28 for (
size_t i = 0; i < tileTypeCount; ++i)
34 const TileType& tileType,
size_t tileTypeIndex)
43 m_pipControlSetMap.clear();
48 size_t pipCount = pips.size();
49 for (
size_t i = 0; i < pipCount; ++i)
52 const PIP& pip = pips[i];
57 size_t count = pipBitValues.size();
67 m_pipControlSetMap.clear();
77 PIPControlSet& DeviceCfgDbFiller::addPIPControlSet(
size_t endWireIndex)
80 pipControlSetMap_t::iterator lb = m_pipControlSetMap.lower_bound(endWireIndex);
81 if ((m_pipControlSetMap.end() == lb) || (endWireIndex != lb->first))
84 size_t count = m_pipControlSets->size();
89 pipControlSetMap_t::iterator it =
90 m_pipControlSetMap.insert(lb, std::make_pair(endWireIndex, count));
98 size_t controlSetIndex = lb->second;
99 return (*m_pipControlSets)[controlSetIndex];
104 void DeviceCfgDbFiller::collapsePIPControlSets()
108 size_t pipControlSetCount = m_pipControlSets->size();
109 size_t pipControlSetIndex = pipControlSetCount;
110 for (
size_t i = 0; i < pipControlSetCount; ++i)
114 if (pipBitValues.size() <= 1)
116 pipControlSetIndex = i;
123 if (pipControlSetIndex >= pipControlSetCount)
return;
124 PIPControlSet& dstPIPControlSet = (*m_pipControlSets)[pipControlSetIndex];
128 size_t i = pipControlSetIndex + 1;
129 while (i < m_pipControlSets->size())
134 size_t pipCount = pipBitValues.size();
138 if (1 == pipCount) dstPIPBitValues.push_back(pipBitValues[0]);
139 m_pipControlSets->erase(m_pipControlSets->begin() + i);