parastics const

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-09-30 15:28:46 -06:00
parent 54a9a48f5c
commit be4b2f0139
5 changed files with 25 additions and 25 deletions

View File

@ -101,8 +101,8 @@ public:
makeParasiticNetwork(const Net *net, makeParasiticNetwork(const Net *net,
bool pin_cap_included, bool pin_cap_included,
const ParasiticAnalysisPt *ap); const ParasiticAnalysisPt *ap);
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *) { return nullptr; } virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *) { return nullptr; }
virtual ParasiticNodeIterator *nodeIterator(Parasitic *) { return nullptr; } virtual ParasiticNodeIterator *nodeIterator(const Parasitic *) { return nullptr; }
virtual bool includesPinCaps(const Parasitic *parasitic) const; virtual bool includesPinCaps(const Parasitic *parasitic) const;
virtual void deleteParasiticNetwork(const Net *net, virtual void deleteParasiticNetwork(const Net *net,
const ParasiticAnalysisPt *ap); const ParasiticAnalysisPt *ap);

View File

@ -153,8 +153,8 @@ public:
virtual Parasitic *makeParasiticNetwork(const Net *net, virtual Parasitic *makeParasiticNetwork(const Net *net,
bool includes_pin_caps, bool includes_pin_caps,
const ParasiticAnalysisPt *ap) = 0; const ParasiticAnalysisPt *ap) = 0;
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic) = 0; virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic) = 0;
virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic) = 0; virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic) = 0;
// Delete parasitic network if it exists. // Delete parasitic network if it exists.
virtual void deleteParasiticNetwork(const Net *net, virtual void deleteParasiticNetwork(const Net *net,
const ParasiticAnalysisPt *ap) = 0; const ParasiticAnalysisPt *ap) = 0;

View File

@ -131,13 +131,13 @@ ConcreteParasitic::setPoleResidue(const Pin *,
} }
ParasiticDeviceIterator * ParasiticDeviceIterator *
ConcreteParasitic::deviceIterator() ConcreteParasitic::deviceIterator() const
{ {
return nullptr; return nullptr;
} }
ParasiticNodeIterator * ParasiticNodeIterator *
ConcreteParasitic::nodeIterator() ConcreteParasitic::nodeIterator() const
{ {
return nullptr; return nullptr;
} }
@ -688,15 +688,15 @@ ConcreteParasiticNetwork::deleteDevices()
} }
ParasiticNodeIterator * ParasiticNodeIterator *
ConcreteParasiticNetwork::nodeIterator() ConcreteParasiticNetwork::nodeIterator() const
{ {
ConcreteParasiticNodeSeq *nodes = new ConcreteParasiticNodeSeq(); ConcreteParasiticNodeSeq *nodes = new ConcreteParasiticNodeSeq();
ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_); ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_);
while (node_iter2.hasNext()) { while (node_iter2.hasNext()) {
ConcreteParasiticPinNode *node = node_iter2.next(); ConcreteParasiticPinNode *node = node_iter2.next();
nodes->push_back(node); nodes->push_back(node);
} }
ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_); ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_);
while (node_iter1.hasNext()) { while (node_iter1.hasNext()) {
ConcreteParasiticSubNode *node = node_iter1.next(); ConcreteParasiticSubNode *node = node_iter1.next();
nodes->push_back(node); nodes->push_back(node);
@ -705,7 +705,7 @@ ConcreteParasiticNetwork::nodeIterator()
} }
ParasiticDeviceIterator * ParasiticDeviceIterator *
ConcreteParasiticNetwork::deviceIterator() ConcreteParasiticNetwork::deviceIterator() const
{ {
ConcreteParasiticDeviceSet *devices1 = new ConcreteParasiticDeviceSet(); ConcreteParasiticDeviceSet *devices1 = new ConcreteParasiticDeviceSet();
devices(devices1); devices(devices1);
@ -713,11 +713,11 @@ ConcreteParasiticNetwork::deviceIterator()
} }
void void
ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) const
{ {
// Collect devices into a set so they are only deleted once // Collect devices into a set so they are only deleted once
// because multiple sub-nodes or pin nodes can refer to them. // because multiple sub-nodes or pin nodes can refer to them.
ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_); ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_);
while (node_iter1.hasNext()) { while (node_iter1.hasNext()) {
ConcreteParasiticSubNode *node = node_iter1.next(); ConcreteParasiticSubNode *node = node_iter1.next();
ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices()); ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices());
@ -727,10 +727,10 @@ ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices)
} }
} }
ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_); ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_);
while (node_iter2.hasNext()) { while (node_iter2.hasNext()) {
ConcreteParasiticPinNode *node = node_iter2.next(); ConcreteParasiticPinNode *node = node_iter2.next();
ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices()); ConcreteParasiticDeviceSeq::ConstIterator device_iter(node->devices());
while (device_iter.hasNext()) { while (device_iter.hasNext()) {
ConcreteParasiticDevice *device = device_iter.next(); ConcreteParasiticDevice *device = device_iter.next();
devices->insert(device); devices->insert(device);
@ -1468,16 +1468,16 @@ ConcreteParasitics::makeResistor(const char *name,
} }
ParasiticDeviceIterator * ParasiticDeviceIterator *
ConcreteParasitics::deviceIterator(Parasitic *parasitic) ConcreteParasitics::deviceIterator(const Parasitic *parasitic)
{ {
ConcreteParasitic *cparasitic = static_cast<ConcreteParasitic*>(parasitic); const ConcreteParasitic *cparasitic = static_cast<const ConcreteParasitic*>(parasitic);
return cparasitic->deviceIterator(); return cparasitic->deviceIterator();
} }
ParasiticNodeIterator * ParasiticNodeIterator *
ConcreteParasitics::nodeIterator(Parasitic *parasitic) ConcreteParasitics::nodeIterator(const Parasitic *parasitic)
{ {
ConcreteParasitic *cparasitic = static_cast<ConcreteParasitic*>(parasitic); const ConcreteParasitic *cparasitic = static_cast<const ConcreteParasitic*>(parasitic);
return cparasitic->nodeIterator(); return cparasitic->nodeIterator();
} }

View File

@ -142,8 +142,8 @@ public:
virtual void makeResistor(const char *name, ParasiticNode *node1, virtual void makeResistor(const char *name, ParasiticNode *node1,
ParasiticNode *node2, ParasiticNode *node2,
float res, const ParasiticAnalysisPt *ap); float res, const ParasiticAnalysisPt *ap);
virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic); virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic);
virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic); virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic);
virtual const char *name(const ParasiticNode *node); virtual const char *name(const ParasiticNode *node);
virtual const Pin *connectionPin(const ParasiticNode *node) const; virtual const Pin *connectionPin(const ParasiticNode *node) const;

View File

@ -78,8 +78,8 @@ public:
virtual void setPoleResidue(const Pin *load_pin, virtual void setPoleResidue(const Pin *load_pin,
ComplexFloatSeq *poles, ComplexFloatSeq *poles,
ComplexFloatSeq *residues); ComplexFloatSeq *residues);
virtual ParasiticDeviceIterator *deviceIterator(); virtual ParasiticDeviceIterator *deviceIterator() const;
virtual ParasiticNodeIterator *nodeIterator(); virtual ParasiticNodeIterator *nodeIterator() const;
}; };
// Pi model for a driver pin. // Pi model for a driver pin.
@ -414,10 +414,10 @@ public:
ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; } ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; }
void disconnectPin(const Pin *pin, void disconnectPin(const Pin *pin,
const Net *net); const Net *net);
virtual ParasiticDeviceIterator *deviceIterator(); virtual ParasiticDeviceIterator *deviceIterator() const;
virtual ParasiticNodeIterator *nodeIterator(); virtual ParasiticNodeIterator *nodeIterator() const;
virtual void devices(// Return value. virtual void devices(// Return value.
ConcreteParasiticDeviceSet *devices); ConcreteParasiticDeviceSet *devices) const;
private: private:
void deleteNodes(); void deleteNodes();