uk.ac.man.cs.rainbow.deadlock
Interface Introspector


public interface Introspector

Basic introspection interface for getting the state when evaluating propositions.

See Also:
Propositions

Method Summary
 Data getArbitrateDirection(String key)
          Which input is selected by the arbitrate with the given key.
 Data getBufferContents(String key)
          What is the contents the buffer with the given key?
 Data getProbeValue(String key)
          What is the value of the probe with the given key?
 Data getProgramCounter(String key)
          Read the given program counter.
 Data getRegisterContents(String key)
          Read the given register.
 boolean isArbitrateDecided(String key)
          Has the arbitrate with the given key made a choice between its inputs?
 boolean isArbitrateLeft(String key)
          Is the arbitrate with the given key selecting its first input? This is the left-most in the default component orientation.
 boolean isArbitrateRight(String key)
          Is the arbitrate with the given key selecting something other than its first input? This is the right-most in the default component orientation with only two inputs.
 boolean isBufferEmpty(String key)
          Is the buffer with the given key empty?
 boolean isBufferFull(String key)
          Does the buffer with the given key contain a value?
 boolean isProbeBusy(String key)
          Is the probe with the given key busy?
 boolean isProbeIdle(String key)
          Is the probe with the given key idle?
 

Method Detail

isBufferEmpty

public boolean isBufferEmpty(String key)
Is the buffer with the given key empty?
Returns:
Always false if the buffer does not exist.

isBufferFull

public boolean isBufferFull(String key)
Does the buffer with the given key contain a value?
Returns:
Always false if the buffer does not exist.

getBufferContents

public Data getBufferContents(String key)
What is the contents the buffer with the given key?
Returns:
Always null if the buffer does not exist.

isProbeIdle

public boolean isProbeIdle(String key)
Is the probe with the given key idle?
Returns:
Always false if the probe does not exist.

isProbeBusy

public boolean isProbeBusy(String key)
Is the probe with the given key busy?
Returns:
Always false if the probe does not exist.

getProbeValue

public Data getProbeValue(String key)
What is the value of the probe with the given key?
Returns:
Always null if the probe does not exist.

isArbitrateDecided

public boolean isArbitrateDecided(String key)
Has the arbitrate with the given key made a choice between its inputs?
Returns:
Always false if the arbitrate does not exist.

isArbitrateLeft

public boolean isArbitrateLeft(String key)
Is the arbitrate with the given key selecting its first input? This is the left-most in the default component orientation.
Returns:
Always false if the arbitrate does not exist.

isArbitrateRight

public boolean isArbitrateRight(String key)
Is the arbitrate with the given key selecting something other than its first input? This is the right-most in the default component orientation with only two inputs.
Returns:
Always false if the arbitrate does not exist.

getArbitrateDirection

public Data getArbitrateDirection(String key)
Which input is selected by the arbitrate with the given key.
Returns:
Always null if the arbitrate does not exist.

getRegisterContents

public Data getRegisterContents(String key)
                         throws UnsupportedOperationException
Read the given register.
Returns:
null if the register does not exist.
Throws:
UnsupportedOperationException - If register contents cannot be read through this mechanism.

getProgramCounter

public Data getProgramCounter(String key)
                       throws UnsupportedOperationException
Read the given program counter.
Returns:
null if the program counter does not exist.
Throws:
UnsupportedOperationException - If program counters cannot be read through this mechanism.