simple.util.lease
Class LeaseManager

java.lang.Object
  extended by simple.util.lease.LeaseManager

public class LeaseManager
extends java.lang.Object

The LeaseManager is used to issue a lease for a named resource. This is effectively used to issue a request for a named resource to be released when a lease has expired. The use of a Lease simplifies the interface to the notification and also enables other objects to manage the lease without any knowledge of the resource it represents.

Author:
Niall Gallagher

Constructor Summary
LeaseManager(Cleaner cleaner)
          Constructor for the LeaseManager object.
 
Method Summary
 Lease lease(java.lang.String name, long duration)
          This method will issue a Lease object that can be used to manage the release of a named resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LeaseManager

public LeaseManager(Cleaner cleaner)
Constructor for the LeaseManager object. This instance is created using a specified notification handler. The specified Cleaner will be notified when the lease for a named resource expires, which will allow the cleaner object to perform a clean up for that resource.

Parameters:
cleaner - the cleaner object receiving notifications
Method Detail

lease

public Lease lease(java.lang.String name,
                   long duration)
This method will issue a Lease object that can be used to manage the release of a named resource. If the lease duration expires before it is renewed then the notification is sent, typically to a Cleaner implementation, to signify that the resource should be recovered. The issued lease can also be canceled.

Parameters:
name - this is the name of the leased resource
duration - this is the duration of the issued lease
Returns:
a lease that can be used to manage notification