Class SULCache<I,O>
- java.lang.Object
-
- de.learnlib.filter.cache.sul.SULCache<I,O>
-
- Type Parameters:
I- input symbol typeO- output symbol type
- All Implemented Interfaces:
LearningCache<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>,LearningCache.MealyLearningCache<I,O>,Resumable<de.learnlib.filter.cache.sul.AbstractSULCache.SULCacheState<I,O>>,SUL<I,O>,net.automatalib.alphabet.SupportsGrowingAlphabet<I>
- Direct Known Subclasses:
ThreadSafeSULCache
public class SULCache<I,O> extends Object
A cache to be used with aSUL.Because on a
SUL, a query is executed step-by-step, it is impossible to determine in advance whether the cached information is sufficient to answer the complete query. However, in general it is undesired to execute any actions on the underlying SUL as long as the requested information can be provided from the cache.This class therefore defers any real execution to the point where the cached information is definitely insufficient; if such a point is not reached before a call to
SUL.post()is made, the underlying SUL is not queried.Note: this implementation is not thread-safe. If you require a cache that is usable in a parallel environment. use the
ThreadSafeSULCache(or rather theThreadSafeSULCachesfactory) from thelearnlib-parallelismartifact.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface de.learnlib.filter.cache.LearningCache
LearningCache.DFALearningCache<I>, LearningCache.MealyLearningCache<I,O>, LearningCache.MooreLearningCache<I,O>
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAlphabetSymbol(I symbol)booleancanFork()EquivalenceOracle.MealyEquivalenceOracle<I,O>createCacheConsistencyTest()Creates a cache consistency test.SUL<I,O>fork()voidpost()voidpre()voidresume(C state)intsize()Ostep(I in)Csuspend()
-
-
-
Method Detail
-
createCacheConsistencyTest
public EquivalenceOracle.MealyEquivalenceOracle<I,O> createCacheConsistencyTest()
Description copied from interface:LearningCacheCreates a cache consistency test. A cache consistency test is an equivalence oracle which checks a given hypothesis against the current contents of the cache. Hence, no queries are posed to the underlying system.The created cache consistency test is backed by the cache contents. This method does not need to be invoked repeatedly when the cache contents change.
- Specified by:
createCacheConsistencyTestin interfaceLearningCache<I,O,C extends de.learnlib.filter.cache.sul.AbstractSULCache.SULCacheState<I,O>>- Returns:
- a cache consistency test for the contents of this cache
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
- Specified by:
addAlphabetSymbolin interfacenet.automatalib.alphabet.SupportsGrowingAlphabet<I>
-
size
public int size()
-
-