Stanse  -1
Public Member Functions | Protected Member Functions | List of all members
cz.muni.stanse.threadchecker.AbstractFunctionState Class Reference
Inheritance diagram for cz.muni.stanse.threadchecker.AbstractFunctionState:
Inheritance graph
[legend]

Public Member Functions

 AbstractFunctionState ()
 
 AbstractFunctionState (LinkedList< BackTrack > backTrack)
 
List< DependencyRulegetRules ()
 
LinkedList< BackTrackgetBackTrack ()
 
void addRules (Collection< DependencyRule > rules)
 
void addJoin (ResourceVertex srcNode, LockStack locked, UnlockSet unlocked)
 
void addRule (DependencyRule rule)
 
Lock getLock (String lockName)
 
Set< JoinNodegetJoins ()
 
Collection< LockgetScope ()
 
Map< String, List
< DependencyRule > > 
getRulesBySourceNode ()
 
Map< String, List
< DependencyRule > > 
getRulesByTargetNode ()
 
boolean isEmpty ()
 
boolean equals (Object obj)
 
int hashCode ()
 
String toString ()
 
void lockDown (String lockName) throws LockingException
 
void lockUp (String lockName, CFGNode node) throws LockingException
 

Protected Member Functions

final LockStack getLockStack ()
 
UnlockSet getUnlockSet ()
 

Detailed Description

Abstract Class which represents dependency rules in one function and all necessary data for stitching with other FunctionState.

Author
Jan Kučera

Constructor & Destructor Documentation

cz.muni.stanse.threadchecker.AbstractFunctionState.AbstractFunctionState ( )
inline
cz.muni.stanse.threadchecker.AbstractFunctionState.AbstractFunctionState ( LinkedList< BackTrack backTrack)
inline

Member Function Documentation

void cz.muni.stanse.threadchecker.AbstractFunctionState.addJoin ( ResourceVertex  srcNode,
LockStack  locked,
UnlockSet  unlocked 
)
inline
void cz.muni.stanse.threadchecker.AbstractFunctionState.addRule ( DependencyRule  rule)
inline

Method add rule to this.rules list and creates keys for all maps for searching.

Parameters
ruleDependencyRule which should be added.
void cz.muni.stanse.threadchecker.AbstractFunctionState.addRules ( Collection< DependencyRule rules)
inline
boolean cz.muni.stanse.threadchecker.AbstractFunctionState.equals ( Object  obj)
inline
LinkedList<BackTrack> cz.muni.stanse.threadchecker.AbstractFunctionState.getBackTrack ( )
inline
Set<JoinNode> cz.muni.stanse.threadchecker.AbstractFunctionState.getJoins ( )
inline
Lock cz.muni.stanse.threadchecker.AbstractFunctionState.getLock ( String  lockName)
inline

Method pick up lock from lockStack or unlockStack, otherwise create a new instanse of lock named as lockName.

Parameters
lockNameString lock's name
Returns
Lock
final LockStack cz.muni.stanse.threadchecker.AbstractFunctionState.getLockStack ( )
inlineprotected
List<DependencyRule> cz.muni.stanse.threadchecker.AbstractFunctionState.getRules ( )
inline
Map<String, List<DependencyRule> > cz.muni.stanse.threadchecker.AbstractFunctionState.getRulesBySourceNode ( )
inline
Map<String, List<DependencyRule> > cz.muni.stanse.threadchecker.AbstractFunctionState.getRulesByTargetNode ( )
inline
Collection<Lock> cz.muni.stanse.threadchecker.AbstractFunctionState.getScope ( )
inline
UnlockSet cz.muni.stanse.threadchecker.AbstractFunctionState.getUnlockSet ( )
inlineprotected
int cz.muni.stanse.threadchecker.AbstractFunctionState.hashCode ( )
inline
boolean cz.muni.stanse.threadchecker.AbstractFunctionState.isEmpty ( )
inline

Method determine, whether data contains any valuable data

Returns
boolean whether data doesn't contain something usefull
void cz.muni.stanse.threadchecker.AbstractFunctionState.lockDown ( String  lockName) throws LockingException
inline

Method tries to unlock semaphore, if so, removes lock from lockSet. If lock is still lock (recursive type) decrement lock's state or set lock to unlockSet.

Parameters
lockNameString name of semaphore
void cz.muni.stanse.threadchecker.AbstractFunctionState.lockUp ( String  lockName,
CFGNode  node 
) throws LockingException
inline

Tries to lock semaphore -> if lockSet is isEmpty, creates join node, otherwise creates dependency rule. If lock is already lock, just increase lock state.

Parameters
lockNameString name of lock
nodeCFGNode for setting spot where lock was set to locked state
String cz.muni.stanse.threadchecker.AbstractFunctionState.toString ( )
inline

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