org.mmtk.utility.gcspy.drivers
Class ImmortalSpaceDriver

java.lang.Object
  extended by org.mmtk.utility.gcspy.drivers.AbstractDriver
      extended by org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
          extended by org.mmtk.utility.gcspy.drivers.ImmortalSpaceDriver
Direct Known Subclasses:
GenImmortalSpaceDriver

public class ImmortalSpaceDriver
extends LinearSpaceDriver

GCspy driver for the contiguous MMTk ImmortalSpace. Adds features for the Immortal space.

This class extends LinearSpaceDriver, a simple driver for contiguous MMTk spaces such as CopySpace and ImmortalSpace.


Nested Class Summary
private  class ImmortalSpaceDriver.Closure
          Used to visit the edges in the immortal object.
 
Field Summary
private  ImmortalSpaceDriver.Closure closure
           
private static boolean DEBUG
           
private  AbstractDriver[] registeredDrivers
           
 
Fields inherited from class org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
allTileNum, arrayObjectsStream, arrayPrimitiveStream, arrayUsedSpaceStream, lastAddress, lastSize, refFromImmortalStream, rootsStream, scalarObjectsStream, scalarUsedSpaceStream, subspace, totalArrayObjects, totalArrayUsedSpace, totalPrimitives, totalRefFromImmortal, totalRoots, totalScalarObjects, totalScalarUsedSpace
 
Fields inherited from class org.mmtk.utility.gcspy.drivers.AbstractDriver
blockSize, changed, control, CONTROL_BACKGROUND, CONTROL_LINK, CONTROL_SEPARATOR, CONTROL_UNUSED, CONTROL_USED, maxTileNum, mmtkSpace, myClass, name, server, serverSpace, streams
 
Constructor Summary
ImmortalSpaceDriver(ServerInterpreter server, String spaceName, Space mmtkSpace, int blockSize, boolean mainSpace)
          Create a new driver for an immortal Contiguous MMTk space.
 
Method Summary
protected  String getDriverName()
          Get the name of this driver type.
 void registerDriversForReferenceNotification(AbstractDriver[] drivers)
          Register a set of AbstractDriver instances to be notified about direct references.
 void scan(ObjectReference object, boolean total)
          Update the tile statistics.
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
getScanner, handleReferenceFromImmortalSpace, handleRoot, resetData, resetRootsStream, scan, scanCheckPrimitiveArray, setRange, setupControlInfo, setupSummaries, transmit
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.AbstractDriver
addControl, addStream, controlIsBackground, controlIsSeparator, controlIsUnused, controlIsUsed, controlValues, countTileNum, countTileNum, createServerSpace, createSubspace, getControl, getMaxTileNum, getServerSpace, initControl, initControls, isConnected, maxObjectsPerBlock, scan, scan, send, setControl, setRange, setSpaceInfo, setTilenames
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

private static final boolean DEBUG
See Also:
Constant Field Values

registeredDrivers

private AbstractDriver[] registeredDrivers

closure

private ImmortalSpaceDriver.Closure closure
Constructor Detail

ImmortalSpaceDriver

public ImmortalSpaceDriver(ServerInterpreter server,
                           String spaceName,
                           Space mmtkSpace,
                           int blockSize,
                           boolean mainSpace)
Create a new driver for an immortal Contiguous MMTk space.

Parameters:
server - The GCspy ServerInterpreter
spaceName - The name of this GCspy space
mmtkSpace - The MMTk space
blockSize - The tile size
mainSpace - Is this the main space?
Method Detail

getDriverName

protected String getDriverName()
Get the name of this driver type.

Overrides:
getDriverName in class LinearSpaceDriver
Returns:
The name, "MMTk ImmortalSpaceDriver" for this driver.

scan

public void scan(ObjectReference object,
                 boolean total)
Update the tile statistics.
This method overrides scan iin its superclass to add immortal space features.

Overrides:
scan in class LinearSpaceDriver
Parameters:
object - The current object
total - Whether to accumulate the values

registerDriversForReferenceNotification

public void registerDriversForReferenceNotification(AbstractDriver[] drivers)
Register a set of AbstractDriver instances to be notified about direct references.

Parameters:
drivers - The array of driver objects.