J avolution v5.2 (J2SE 1.5+)

javolution.context
Class AllocatorContext

java.lang.Object
  extended by javolution.context.Context
      extended by javolution.context.AllocatorContext
All Implemented Interfaces:
java.io.Serializable, XMLSerializable
Direct Known Subclasses:
HeapContext, ImmortalContext, StackContext

public abstract class AllocatorContext
extends Context

This class represents an allocator context; it defines the the allocation policy of ObjectFactory products.

The default implementation is an instance of HeapContext context.

Specializations may allocate from local stacks (StackContext), specific memory areas (e.g. ImmortalContext), aging pools (where objects sufficiently old are recycled), switchable spaces (objects from a particular frame are recycled when buffers are swapped), etc.

Version:
5.2, August 19, 2007
Author:
Jean-Marie Dautelle
See Also:
Serialized Form

Nested Class Summary
static class AllocatorContext.Reference<T>
           This class represents a reference allocated from the current AllocatorContext.
 
Field Summary
static Configurable<java.lang.Class<? extends AllocatorContext>> DEFAULT
          Holds the default implementation (HeapContext instance).
 
Fields inherited from class javolution.context.Context
ROOT
 
Constructor Summary
protected AllocatorContext()
          Default constructor.
 
Method Summary
protected abstract  void deactivate()
          Deactivates the allocators belonging to this context for the current thread.
protected abstract  Allocator getAllocator(ObjectFactory factory)
          Returns the allocator for the specified factory in this context.
static AllocatorContext getCurrent()
          Returns the current allocator context.
static AllocatorContext getDefault()
          Returns the default instance (DEFAULT implementation).
 
Methods inherited from class javolution.context.Context
enter, enter, enterAction, exit, exit, exitAction, getOuter, getOwner, setCurrent, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT

public static final Configurable<java.lang.Class<? extends AllocatorContext>> DEFAULT
Holds the default implementation (HeapContext instance).

Constructor Detail

AllocatorContext

protected AllocatorContext()
Default constructor.

Method Detail

getCurrent

public static AllocatorContext getCurrent()
Returns the current allocator context. If the current thread has not entered an allocator context (e.g. new thread) then getDefault() is returned.

Returns:
the current allocator context.

getDefault

public static AllocatorContext getDefault()
Returns the default instance (DEFAULT implementation).

Returns:
the default instance.

getAllocator

protected abstract Allocator getAllocator(ObjectFactory factory)
Returns the allocator for the specified factory in this context.

Parameters:
factory - the factory for which the allocator is returned.
Returns:
the allocator producing instances of the specified factory.

deactivate

protected abstract void deactivate()
Deactivates the allocators belonging to this context for the current thread. This method is typically called when an inner allocator context is entered by the current thread, when exiting an allocator context or when a concurrent executor has completed its task within this allocator context. Deactivated allocators have no user (null).


J avolution v5.2 (J2SE 1.5+)

Copyright © 2005 - 2007 Javolution.