org.mmtk.vm
Class Factory

java.lang.Object
  extended by org.mmtk.vm.Factory
Direct Known Subclasses:
Factory

public abstract class Factory
extends Object

This class defines factory methods for VM-specific types which must be instantiated within MMTk. Since the concrete type is defined at build time, we leave it to a concrete vm-specific instance of this class to perform the object instantiation.


Constructor Summary
Factory()
           
 
Method Summary
abstract  OptionSet getOptionSet()
          Create or retrieve the OptionSet used for MMTk options.
abstract  ActivePlan newActivePlan()
          Create a new ActivePlan instance using the appropriate VM-specific concrete ActivePlan sub-class.
abstract  Assert newAssert()
          Create a new Assert instance using the appropriate VM-specific concrete Assert sub-class.
abstract  Barriers newBarriers()
          Create a new Barriers instance using the appropriate VM-specific concrete Barriers sub-class.
abstract  BuildTimeConfig newBuildTimeConfig()
          Create a new BuildTimeConfig instance using the appropriate VM-specific concrete BuildTimeConfig sub-class.
abstract  Collection newCollection()
          Create a new Collection instance using the appropriate VM-specific concrete Collection sub-class.
abstract  Debug newDebug()
          Create a new debug object
abstract  MMTk_Events newEvents()
          Create a new MMTk_Events instance using the appropriate VM-specific concrete MMTk_Events sub-class.
abstract  FinalizableProcessor newFinalizableProcessor()
          Create a new FinalizbleProcessor instance using the appropriate VM-specific concrete FinalizableProcessor sub-class.
abstract  ByteStream newGCspyByteStream(AbstractDriver driver, String name, byte minValue, byte maxValue, byte zeroValue, byte defaultValue, String stringPre, String stringPost, int presentation, int paintStyle, int indexMaxStream, Color colour, boolean summary)
          Create a new ByteStream instance using the appropriate VM-specific concrete ByteStream sub-class.
abstract  IntStream newGCspyIntStream(AbstractDriver driver, String name, int minValue, int maxValue, int zeroValue, int defaultValue, String stringPre, String stringPost, int presentation, int paintStyle, int indexMaxStream, Color colour, boolean summary)
          Create a new IntStream instance using the appropriate VM-specific concrete IntStream sub-class.
abstract  ServerInterpreter newGCspyServerInterpreter()
          Create a new ServerInterpreter instance using the appropriate VM-specific concrete ServerInterpreter sub-class.
abstract  ServerSpace newGCspyServerSpace(ServerInterpreter serverInterpreter, String serverName, String driverName, String title, String blockInfo, int tileNum, String unused, boolean mainSpace)
          Create a new ServerSpace instance using the appropriate VM-specific concrete ServerSpace sub-class.
abstract  ShortStream newGCspyShortStream(AbstractDriver driver, String name, short minValue, short maxValue, short zeroValue, short defaultValue, String stringPre, String stringPost, int presentation, int paintStyle, int indexMaxStream, Color colour, boolean summary)
          Create a new ShortStream instance using the appropriate VM-specific concrete ShortStream sub-class.
abstract  Util newGCspyUtil()
          Create a new Util instance using the appropriate VM-specific concrete Util sub-class.
abstract  Lock newLock(String name)
          Create a new Lock instance using the appropriate VM-specific concrete Lock sub-class.
abstract  Memory newMemory()
          Create a new Memory instance using the appropriate VM-specific concrete Memory sub-class.
abstract  Monitor newMonitor(String name)
          Create a new Monitor instance using the appropriate VM-specific concrete Lock sub-class.
abstract  ObjectModel newObjectModel()
          Create a new ObjectModel instance using the appropriate VM-specific concrete ObjectModel sub-class.
abstract  ReferenceProcessor newReferenceProcessor(ReferenceProcessor.Semantics semantics)
          Create a new ReferenceProcessor instance using the appropriate VM-specific concrete ReferenceProcessor sub-class.
abstract  Scanning newScanning()
          Create a new Scanning instance using the appropriate VM-specific concrete Scanning sub-class.
abstract  Statistics newStatistics()
          Create a new Statistics instance using the appropriate VM-specific concrete Statistics sub-class.
abstract  Strings newStrings()
          Create a new Strings instance using the appropriate VM-specific concrete Strings sub-class.
abstract  SynchronizedCounter newSynchronizedCounter()
          Create a new SynchronizedCounter instance using the appropriate VM-specific concrete SynchronizedCounter sub-class.
abstract  TraceInterface newTraceInterface()
          Create a new TraceInterface instance using the appropriate VM-specific concrete TraceInterface sub-class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Factory

public Factory()
Method Detail

getOptionSet

public abstract OptionSet getOptionSet()
Create or retrieve the OptionSet used for MMTk options.

Returns:
A concrete VM-specific OptionSet instance

newActivePlan

public abstract ActivePlan newActivePlan()
Create a new ActivePlan instance using the appropriate VM-specific concrete ActivePlan sub-class.

Returns:
A concrete VM-specific ActivePlan instance.
See Also:
ActivePlan

newAssert

public abstract Assert newAssert()
Create a new Assert instance using the appropriate VM-specific concrete Assert sub-class.

Returns:
A concrete VM-specific Assert instance.
See Also:
Assert

newBarriers

public abstract Barriers newBarriers()
Create a new Barriers instance using the appropriate VM-specific concrete Barriers sub-class.

Returns:
A concrete VM-specific Barriers instance.
See Also:
Barriers

newCollection

public abstract Collection newCollection()
Create a new Collection instance using the appropriate VM-specific concrete Collection sub-class.

Returns:
A concrete VM-specific Collection instance.
See Also:
Collection

newBuildTimeConfig

public abstract BuildTimeConfig newBuildTimeConfig()
Create a new BuildTimeConfig instance using the appropriate VM-specific concrete BuildTimeConfig sub-class.

Returns:
A concrete VM-specific Collection instance.
See Also:
Collection

newLock

public abstract Lock newLock(String name)
Create a new Lock instance using the appropriate VM-specific concrete Lock sub-class.

Parameters:
name - The string to be associated with this lock instance
Returns:
A concrete VM-specific Lock instance.
See Also:
Lock

newMonitor

public abstract Monitor newMonitor(String name)
Create a new Monitor instance using the appropriate VM-specific concrete Lock sub-class.

Parameters:
name - The string to be associated with this monitor instance
Returns:
A concrete VM-specific Monitor instance.
See Also:
Monitor

newMemory

public abstract Memory newMemory()
Create a new Memory instance using the appropriate VM-specific concrete Memory sub-class.

Returns:
A concrete VM-specific Memory instance.
See Also:
Memory

newObjectModel

public abstract ObjectModel newObjectModel()
Create a new ObjectModel instance using the appropriate VM-specific concrete ObjectModel sub-class.

Returns:
A concrete VM-specific ObjectModel instance.
See Also:
ObjectModel

newReferenceProcessor

public abstract ReferenceProcessor newReferenceProcessor(ReferenceProcessor.Semantics semantics)
Create a new ReferenceProcessor instance using the appropriate VM-specific concrete ReferenceProcessor sub-class.

Returns:
A concrete VM-specific ReferenceProcessor instance.
See Also:
ReferenceProcessor

newFinalizableProcessor

public abstract FinalizableProcessor newFinalizableProcessor()
Create a new FinalizbleProcessor instance using the appropriate VM-specific concrete FinalizableProcessor sub-class.

Returns:
A concrete VM-specific FinalizableProcessor instance.
See Also:
FinalizableProcessor

newScanning

public abstract Scanning newScanning()
Create a new Scanning instance using the appropriate VM-specific concrete Scanning sub-class.

Returns:
A concrete VM-specific Scanning instance.
See Also:
Scanning

newStatistics

public abstract Statistics newStatistics()
Create a new Statistics instance using the appropriate VM-specific concrete Statistics sub-class.

Returns:
A concrete VM-specific Statistics instance.
See Also:
Statistics

newStrings

public abstract Strings newStrings()
Create a new Strings instance using the appropriate VM-specific concrete Strings sub-class.

Returns:
A concrete VM-specific Strings instance.
See Also:
Strings

newSynchronizedCounter

public abstract SynchronizedCounter newSynchronizedCounter()
Create a new SynchronizedCounter instance using the appropriate VM-specific concrete SynchronizedCounter sub-class.

Returns:
A concrete VM-specific SynchronizedCounter instance.
See Also:
SynchronizedCounter

newTraceInterface

public abstract TraceInterface newTraceInterface()
Create a new TraceInterface instance using the appropriate VM-specific concrete TraceInterface sub-class.

Returns:
A concrete VM-specific TraceInterface instance.
See Also:
TraceInterface

newEvents

public abstract MMTk_Events newEvents()
Create a new MMTk_Events instance using the appropriate VM-specific concrete MMTk_Events sub-class.


newDebug

public abstract Debug newDebug()
Create a new debug object


newGCspyUtil

public abstract Util newGCspyUtil()
Create a new Util instance using the appropriate VM-specific concrete Util sub-class.

Returns:
A concrete VM-specific Util instance.
See Also:
Util

newGCspyServerInterpreter

public abstract ServerInterpreter newGCspyServerInterpreter()
Create a new ServerInterpreter instance using the appropriate VM-specific concrete ServerInterpreter sub-class.

Returns:
A concrete VM-specific ServerInterpreter instance.
See Also:
ServerInterpreter

newGCspyServerSpace

public abstract ServerSpace newGCspyServerSpace(ServerInterpreter serverInterpreter,
                                                String serverName,
                                                String driverName,
                                                String title,
                                                String blockInfo,
                                                int tileNum,
                                                String unused,
                                                boolean mainSpace)
Create a new ServerSpace instance using the appropriate VM-specific concrete ServerSpace sub-class.

Parameters:
serverInterpreter - The server that owns this space
serverName - The server's name
driverName - The space driver's name
title - Title for the space
blockInfo - A label for each block
tileNum - Max number of tiles in this space
unused - A label for unused blocks
mainSpace - Whether this space is the main space
Returns:
A concrete VM-specific ServerSpace instance.
See Also:
ServerSpace

newGCspyIntStream

public abstract IntStream newGCspyIntStream(AbstractDriver driver,
                                            String name,
                                            int minValue,
                                            int maxValue,
                                            int zeroValue,
                                            int defaultValue,
                                            String stringPre,
                                            String stringPost,
                                            int presentation,
                                            int paintStyle,
                                            int indexMaxStream,
                                            Color colour,
                                            boolean summary)
Create a new IntStream instance using the appropriate VM-specific concrete IntStream sub-class.

Parameters:
driver - The driver that owns this Stream
name - The name of the stream (e.g. "Used space")
minValue - The minimum value for any item in this stream. Values less than this will be represented as "minValue-"
maxValue - The maximum value for any item in this stream. Values greater than this will be represented as "maxValue+"
zeroValue - The zero value for this stream
defaultValue - The default value for this stream
stringPre - A string to prefix values (e.g. "Used: ")
stringPost - A string to suffix values (e.g. " bytes.")
presentation - How a stream value is to be presented.
paintStyle - How the value is to be painted.
indexMaxStream - The index of the maximum stream if the presentation is *_VAR.
colour - The default colour for tiles of this stream
Returns:
A concrete VM-specific IntStream instance.
See Also:
IntStream

newGCspyByteStream

public abstract ByteStream newGCspyByteStream(AbstractDriver driver,
                                              String name,
                                              byte minValue,
                                              byte maxValue,
                                              byte zeroValue,
                                              byte defaultValue,
                                              String stringPre,
                                              String stringPost,
                                              int presentation,
                                              int paintStyle,
                                              int indexMaxStream,
                                              Color colour,
                                              boolean summary)
Create a new ByteStream instance using the appropriate VM-specific concrete ByteStream sub-class.

Parameters:
driver - The driver that owns this Stream
name - The name of the stream (e.g. "Used space")
minValue - The minimum value for any item in this stream. Values less than this will be represented as "minValue-"
maxValue - The maximum value for any item in this stream. Values greater than this will be represented as "maxValue+"
zeroValue - The zero value for this stream
defaultValue - The default value for this stream
stringPre - A string to prefix values (e.g. "Used: ")
stringPost - A string to suffix values (e.g. " bytes.")
presentation - How a stream value is to be presented.
paintStyle - How the value is to be painted.
indexMaxStream - The index of the maximum stream if the presentation is *_VAR.
colour - The default colour for tiles of this stream
Returns:
A concrete VM-specific ByteStream instance.
See Also:
IntStream

newGCspyShortStream

public abstract ShortStream newGCspyShortStream(AbstractDriver driver,
                                                String name,
                                                short minValue,
                                                short maxValue,
                                                short zeroValue,
                                                short defaultValue,
                                                String stringPre,
                                                String stringPost,
                                                int presentation,
                                                int paintStyle,
                                                int indexMaxStream,
                                                Color colour,
                                                boolean summary)
Create a new ShortStream instance using the appropriate VM-specific concrete ShortStream sub-class.

Parameters:
driver - The driver that owns this Stream
name - The name of the stream (e.g. "Used space")
minValue - The minimum value for any item in this stream. Values less than this will be represented as "minValue-"
maxValue - The maximum value for any item in this stream. Values greater than this will be represented as "maxValue+"
zeroValue - The zero value for this stream
defaultValue - The default value for this stream
stringPre - A string to prefix values (e.g. "Used: ")
stringPost - A string to suffix values (e.g. " bytes.")
presentation - How a stream value is to be presented.
paintStyle - How the value is to be painted.
indexMaxStream - The index of the maximum stream if the presentation is *_VAR.
colour - The default colour for tiles of this stream
Returns:
A concrete VM-specific ShortStream instance.
See Also:
IntStream