Predator
[unstable] git snapshot
|
Extension of SymStateWithJoin, which distinguishes among already processed symbolic heaps and symbolic heaps scheduled for processing. More...
#include <symstate.hh>
Public Types | |
typedef TList::const_iterator | const_iterator |
typedef TList::iterator | iterator |
Public Member Functions | |
SymStateMarked () | |
SymStateMarked & | operator= (const SymState &huni) |
import of SymState rewrites the base and invalidates all flags | |
virtual void | clear () |
virtual void | swap (SymState &) |
int | cntPending () const |
return count of heaps pending for execution | |
bool | isDone (int nth) const |
check if the nth symbolic heap has been already processed | |
void | setDone (int nth) |
mark the nth symbolic heap as processed | |
virtual bool | insert (const SymHeap &sh, bool allowThreeWay=true) |
insert given SymHeap object into the state | |
virtual int | lookup (const SymHeap &sh) const |
look for the given symbolic heap, return its index if found, -1 otherwise | |
size_t | size () const |
return count of object stored in the container | |
const SymHeap & | operator[] (int nth) const |
return nth SymHeap object, 0 <= nth < size() | |
const_iterator | begin () const |
return STL-like iterator to go through the container | |
iterator | begin () |
return STL-like iterator to go through the container | |
const_iterator | end () const |
return STL-like iterator to go through the container | |
iterator | end () |
return STL-like iterator to go through the container |
Protected Member Functions | |
virtual void | insertNew (const SymHeap &sh) |
insert new SymHeap that @ must be guaranteed to be not yet in | |
virtual void | eraseExisting (int nth) |
virtual void | swapExisting (int nth, SymHeap &sh) |
virtual void | rotateExisting (int idxA, int idxB) |
void | updateTraceOf (int idx, Trace::Node *tr, EJoinStatus status) |
Private Types | |
typedef std::vector< bool > | TDone |
Private Attributes | |
TDone | done_ |
int | cntPending_ |
Friends | |
class | SymStateMap |
Extension of SymStateWithJoin, which distinguishes among already processed symbolic heaps and symbolic heaps scheduled for processing.
Newly inserted symbolic heaps are always marked as scheduled. They can be marked as done later, using the setDone() method.
Definition at line 163 of file symstate.hh.
|
inherited |
Definition at line 43 of file symstate.hh.
|
inherited |
Definition at line 44 of file symstate.hh.
|
private |
Definition at line 242 of file symstate.hh.
|
inline |
Definition at line 165 of file symstate.hh.
|
inlineinherited |
return STL-like iterator to go through the container
Definition at line 77 of file symstate.hh.
References SymState::heaps_.
|
inlineinherited |
return STL-like iterator to go through the container
Definition at line 83 of file symstate.hh.
References SymState::heaps_.
|
inlinevirtual |
Reimplemented from SymState.
Definition at line 179 of file symstate.hh.
References cntPending_, and done_.
|
inline |
return count of heaps pending for execution
Definition at line 189 of file symstate.hh.
References cntPending_.
|
inlineinherited |
return STL-like iterator to go through the container
Definition at line 80 of file symstate.hh.
References SymState::heaps_.
|
inlineinherited |
return STL-like iterator to go through the container
Definition at line 86 of file symstate.hh.
References SymState::heaps_.
|
inlineprotectedvirtual |
Reimplemented from SymState.
Definition at line 202 of file symstate.hh.
References cntPending_, and done_.
|
virtualinherited |
|
inlineprotectedvirtual |
insert new SymHeap that @ must be guaranteed to be not yet in
Reimplemented from SymState.
Definition at line 194 of file symstate.hh.
References cntPending_, and done_.
|
inline |
check if the nth symbolic heap has been already processed
Definition at line 229 of file symstate.hh.
References done_.
|
virtualinherited |
look for the given symbolic heap, return its index if found, -1 otherwise
Implements SymState.
|
inline |
import of SymState rewrites the base and invalidates all flags
Reimplemented from SymState.
Definition at line 171 of file symstate.hh.
References cntPending_, done_, and SymState::size().
|
inlineinherited |
return nth SymHeap object, 0 <= nth < size()
Definition at line 72 of file symstate.hh.
References SymState::heaps_.
|
protectedvirtual |
Reimplemented from SymState.
|
inline |
mark the nth symbolic heap as processed
Definition at line 234 of file symstate.hh.
References cntPending_, and done_.
|
inlineinherited |
return count of object stored in the container
Definition at line 69 of file symstate.hh.
References SymState::heaps_.
Referenced by operator=().
|
virtual |
Reimplemented from SymState.
|
inlineprotectedvirtual |
Reimplemented from SymState.
Definition at line 211 of file symstate.hh.
References cntPending_, and done_.
|
protectedinherited |
|
friend |
Definition at line 225 of file symstate.hh.
|
private |
Definition at line 245 of file symstate.hh.
Referenced by clear(), cntPending(), eraseExisting(), insertNew(), operator=(), setDone(), and swapExisting().
|
private |
Definition at line 244 of file symstate.hh.
Referenced by clear(), eraseExisting(), insertNew(), isDone(), operator=(), setDone(), and swapExisting().