Package org.simpleframework.common.lease
Interface ContractController<T>
- All Known Implementing Classes:
ContractMaintainer
interface ContractController<T>
The
ContractController
forms the interface to the
lease management system. There are two actions permitted for
leased resources, these are lease issue and lease renewal. When
the lease is first issued it is scheduled for the contract
duration. Once issued the lease can be renewed with another
duration, which can be less than the previous duration used.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
This will cancel the lease and release the resource.void
close()
This method is used to cancel all outstanding leases and to close the controller.void
This method will establish a contract for the given duration.void
This ensures that the contract is renewed for the duration on the contract, which may have changed since it was issued or last renewed.
-
Method Details
-
issue
This method will establish a contract for the given duration. If the contract duration expires before it is renewed then a notification is sent, typically to aCleaner
to to signify that the resource should be released. The contract can also be cancelled by providing a zero length duration.- Parameters:
contract
- a contract representing a leased resource- Throws:
Exception
- if the lease could not be doneLeaseException
-
renew
This ensures that the contract is renewed for the duration on the contract, which may have changed since it was issued or last renewed. If the duration on the contract has changed this will insure the previous contract duration is revoked and the new duration is used to maintain the leased resource.- Parameters:
contract
- a contract representing a leased resource- Throws:
Exception
- if the lease could not be doneLeaseException
-
cancel
This will cancel the lease and release the resource. This has the same effect as therenew
method with a zero length duration. Once this has been called theCleaner
used should be notified immediately. If the lease has already expired this throws an exception.- Parameters:
contract
- a contract representing a leased resource- Throws:
Exception
- if the expiry has been passedLeaseException
-
close
void close()This method is used to cancel all outstanding leases and to close the controller. Closing the controller ensures that it can no longer be used to issue or renew leases. All resources occupied by the controller are released, including threads, memory, and all leased resources occupied by the instance.
-