de.intarsys.tools.resourcetracker
Class ResourceTracker

java.lang.Object
  extended by de.intarsys.tools.resourcetracker.ResourceTracker

public abstract class ResourceTracker
extends java.lang.Object

An object to keep track of platform resources that should be disposed upon garbage collection of some container object.

To use this create a subclass implementing the dispose strategy and add new resources using "track".

The resources will be disposed automatically after garbage collection of the container in a separate worker thread.


Constructor Summary
ResourceTracker()
           
ResourceTracker(int size)
           
ResourceTracker(ResourceFinalizer finalizer)
           
ResourceTracker(ResourceFinalizer finalizer, int size)
           
 
Method Summary
protected  IResourceReference add(IResourceReference ref)
           
protected abstract  void basicDispose(java.lang.Object resource)
           
protected  void dispose(IResourceReference ref)
           
protected  java.lang.ref.ReferenceQueue getQueue()
           
protected  void remove(IResourceReference ref)
           
 IResourceReference trackPhantom(java.lang.Object container, java.lang.Object resource)
           
 IResourceReference trackSoft(java.lang.Object container, java.lang.Object resource)
           
 IResourceReference trackWeak(java.lang.Object container, java.lang.Object resource)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceTracker

public ResourceTracker()

ResourceTracker

public ResourceTracker(int size)

ResourceTracker

public ResourceTracker(ResourceFinalizer finalizer)

ResourceTracker

public ResourceTracker(ResourceFinalizer finalizer,
                       int size)
Method Detail

add

protected IResourceReference add(IResourceReference ref)

basicDispose

protected abstract void basicDispose(java.lang.Object resource)

dispose

protected void dispose(IResourceReference ref)

getQueue

protected java.lang.ref.ReferenceQueue getQueue()

remove

protected void remove(IResourceReference ref)

trackPhantom

public IResourceReference trackPhantom(java.lang.Object container,
                                       java.lang.Object resource)

trackSoft

public IResourceReference trackSoft(java.lang.Object container,
                                    java.lang.Object resource)

trackWeak

public IResourceReference trackWeak(java.lang.Object container,
                                    java.lang.Object resource)