HAL  v4.5.0-130-g83e8bfb3f
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::TraversalCache Class Reference

#include <hal_core/netlist/decorators/netlist_traversal_decorator.h>

Collaboration diagram for hal::TraversalCache:
Collaboration graph

Public Member Functions

 TraversalCache (TraversalCache &&)=default
 
TraversalCacheoperator= (TraversalCache &&)=default
 
 TraversalCache (const TraversalCache &)=delete
 
TraversalCacheoperator= (const TraversalCache &)=delete
 

Friends

class NetlistTraversalDecorator
 

Detailed Description

A reusable store for the results of one specific traversal, handed to NetlistTraversalDecorator::get_gates.

The traversal a cache belongs to is sealed in when it is created: the direction, the match condition, the stop rule and the endpoint filters all become part of the cache, and the cache can only ever be used for exactly that traversal. This is what makes reuse sound – an entry for a net is the complete answer for that net, so it must never be consulted by a walk that asks a different question.

Two things are excluded on purpose, because either would make the answer for a net depend on how the net was reached: there is no depth limit, and the endpoint filters receive no depth.

The cache belongs to the netlist it was created for and must be dropped when the netlist is modified, as its entries are not invalidated by netlist events.

Definition at line 98 of file netlist_traversal_decorator.h.

Constructor & Destructor Documentation

◆ TraversalCache() [1/2]

hal::TraversalCache::TraversalCache ( TraversalCache &&  )
default

◆ TraversalCache() [2/2]

hal::TraversalCache::TraversalCache ( const TraversalCache )
delete

Member Function Documentation

◆ operator=() [1/2]

TraversalCache& hal::TraversalCache::operator= ( const TraversalCache )
delete

◆ operator=() [2/2]

TraversalCache& hal::TraversalCache::operator= ( TraversalCache &&  )
default

Friends And Related Function Documentation

◆ NetlistTraversalDecorator

friend class NetlistTraversalDecorator
friend

Definition at line 107 of file netlist_traversal_decorator.h.


The documentation for this class was generated from the following file: