public interface BamCache<SignatureT extends Signature>
SignatureT
. Along with the Cfa
the signature can be used to retrieve the block
(i.e. the respective CFA subgraph) as described in the BAM paper.
A block abstraction is uniquely identified by a triple of an entry AbstractState
(that
may be call-context dependent, e.g. if the calling parameters or global variables are different),
the corresponding Precision
, and the Signature
of the function the block belongs
to.
Modifier and Type | Method and Description |
---|---|
BlockAbstraction |
get(AbstractState stateKey,
Precision precisionKey,
SignatureT blockKey)
Gets the block abstraction identified by the provided keys from the cache.
|
java.util.Collection<BlockAbstraction> |
get(Precision precision,
SignatureT blockKey)
Returns a collection of all the cache entries for a specified method with a certain precision,
empty in case there are not such entries.
|
java.util.Collection<BlockAbstraction> |
get(SignatureT blockKey)
Returns a collection of all the cache entries for a specified method, empty in case there are
not such entries.
|
java.util.Set<SignatureT> |
getAllMethods()
Returns a set of all the methods that have an entry in the cache.
|
void |
put(AbstractState stateKey,
Precision precisionKey,
SignatureT blockKey,
BlockAbstraction blockAbstraction)
Adds the block abstraction identified by the provided keys to the cache.
|
int |
size()
Returns the size of the cache.
|
java.util.Collection<BlockAbstraction> |
values()
Returns block abstractions stored in the cache.
|
void put(AbstractState stateKey, Precision precisionKey, SignatureT blockKey, BlockAbstraction blockAbstraction)
BlockAbstraction get(AbstractState stateKey, Precision precisionKey, SignatureT blockKey)
java.util.Collection<BlockAbstraction> get(SignatureT blockKey)
java.util.Collection<BlockAbstraction> get(Precision precision, SignatureT blockKey)
java.util.Collection<BlockAbstraction> values()
int size()
java.util.Set<SignatureT> getAllMethods()