- java.lang.Object
-
- de.learnlib.filter.cache.sul.SULCache<I,O>
-
- de.learnlib.filter.cache.sul.ThreadSafeSULCache<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>
public class ThreadSafeSULCache<I,O> extends SULCache<I,O>
A thread-safe variant ofSULCache
.
-
-
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 void
addAlphabetSymbol(I symbol)
boolean
canFork()
Returns whether this SUL is capable offorking
.EquivalenceOracle.MealyEquivalenceOracle<I,O>
createCacheConsistencyTest()
Creates a cache consistency test.SUL<I,O>
fork()
Forks this SUL, if possible.void
post()
shut down SUL.void
pre()
setup SUL.void
resume(C state)
Resume the datastructure from a previously suspended point in time.int
size()
O
step(I in)
make one step on the SUL.C
suspend()
Expose the state object.
-
-
-
Method Detail
-
pre
public void pre()
Description copied from interface:SUL
setup SUL.
-
post
public void post()
Description copied from interface:SUL
shut down SUL.
-
step
public O step(I in)
Description copied from interface:SUL
make one step on the SUL.
-
canFork
public boolean canFork()
Description copied from interface:SUL
Returns whether this SUL is capable offorking
.- Specified by:
canFork
in interfaceSUL<I,O>
- Returns:
true
if this SUL can be forked,false
otherwise- See Also:
SUL.fork()
-
fork
public SUL<I,O> fork()
Description copied from interface:SUL
Forks this SUL, if possible. The fork of a SUL is a copy which behaves exactly the same as this SUL. This method should always return a reseted SUL, regardless of whether this call is made between a call toSUL.pre()
andSUL.post()
.If
SUL.canFork()
returnstrue
, this method must return a non-null
object, which should behave exactly like this SUL (in particular, it must be forkable as well). Otherwise, aUnsupportedOperationException
must be thrown.Implementation note: if resetting a SUL changes the internal state of this object in a non-trivial way (e.g., incrementing a counter to ensure independent sessions), care must be taken that forks of this SUL manipulate the same internal state.
-
createCacheConsistencyTest
public EquivalenceOracle.MealyEquivalenceOracle<I,O> createCacheConsistencyTest()
Description copied from interface:LearningCache
Creates 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:
createCacheConsistencyTest
in 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:
addAlphabetSymbol
in interfacenet.automatalib.alphabet.SupportsGrowingAlphabet<I>
-
suspend
public C suspend()
Description copied from interface:Resumable
Expose the state object.
-
resume
public void resume(C state)
Description copied from interface:Resumable
Resume the datastructure from a previously suspended point in time.
-
size
public int size()
-
-