public abstract class ResourcePool extends Object
| Modifier and Type | Field and Description |
|---|---|
protected LinkedList |
alloced
The alloced list
|
protected LinkedList |
freed
The free list
|
protected String |
identifier
Unique identifier for a resourcePool instance
|
protected int |
max
The maximum # of resources allowed
|
protected int |
min
The minimum # of resources to create at init time
|
protected int |
numCreated
The total number of resources currently created
|
| Constructor and Description |
|---|
ResourcePool() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
allocResource(Object resource)
allocates a Resource and performs any initilization required to manage the alloced resource
|
protected abstract Object |
create()
Abstract method for creating a specific resource in the sub-class
|
protected Object |
createResource()
creates a new Resource and performs any initilization required to manage the resource
|
protected void |
createResources()
Pre-creates the minimum number of resources
|
protected void |
createResources(int number)
Pre-creates the specified number of resources
|
protected abstract void |
dispose(Object obj)
Abstract method for disposing a specific resource in the sub-class
|
protected void |
disposeResource(Object resource)
disposes of a Resource and performs any clean-up required to manage the resource
|
protected void |
freeResource(Object resource)
frees a Resource and performs any clean-up required to manage the resource
|
Object |
get()
Get a Resource from the pool, blocking forever until a resource becomes available
|
Object |
get(long timeout)
Get a Resource from the pool, blocking for a specified time until a resource becomes
available, a zero timeout blocks forever.
|
<T> List<T> |
getAllocedOfType(Class<T> type) |
int |
getAllocedSize()
Gets the number of resources currently assigned
|
int |
getFreedSize()
Gets the number of resources currently available for assignment
|
String |
getIdentifier()
Gets the unique identifier for this instance
|
static ResourcePool |
getInstance(String key)
Gets a registered ResourcePool
|
int |
getMax()
Gets the maximum number of resources allowed
|
int |
getMin()
Gets the minimum number of resources
|
int |
getSize()
Gets the total number of resources created
|
protected void |
register()
Registers this resource into the common ResourcePool
|
protected void |
register(String key)
Registers this resource into the common ResourcePool
|
static void |
register(String key,
ResourcePool pool)
Registers a resource into the common ResourcePool
|
void |
release(Object obj)
Release a resource back to the pool after its use is completed.
|
void |
remove(Object obj)
Remove a resource all together from the pool and dispose of it
|
void |
setIdentifier(String identifier)
Sets the unique identifier for this instance
|
void |
setMax(int max)
Sets the maximum number of resources
|
void |
setMin(int min)
Sets the minimum number of resources, this method has no effect on the number of created
resources, if the new minimum is less than the old minimum.
|
String |
toString()
Returns a string representation of the ResourcePool
|
protected abstract boolean |
validate(Object obj)
Abstract method for validating a resource
|
protected LinkedList freed
protected LinkedList alloced
protected int min
protected int max
protected int numCreated
protected String identifier
protected abstract Object create() throws ResourceUnavailableException
ResourceUnavailableException - if an error occured in creating the resourceprotected abstract void dispose(Object obj)
obj - the resource to disposeprotected abstract boolean validate(Object obj)
obj - the resource to validatepublic void release(Object obj)
obj - the resource objectpublic void remove(Object obj)
obj - the resource objectpublic Object get() throws ResourceUnavailableException
ResourceUnavailableException - if an error occured in creating the resourcepublic Object get(long timeout) throws ResourceUnavailableException
timeout - the time in milliseconds to wait for a resource to become availableResourceUnavailableException - if an error occured in creating the resourceResourceUnavailableException - if no resource becomes available before the timeout
period expiresprotected Object createResource() throws ResourceUnavailableException
ResourceUnavailableExceptionprotected void allocResource(Object resource)
resource - the resource to allocateprotected void freeResource(Object resource)
resource - the resource to freeprotected void disposeResource(Object resource)
resource - the resource to disposepublic int getFreedSize()
public int getAllocedSize()
public int getSize()
public int getMin()
public int getMax()
public void setMin(int min)
min - the minimum number of resourcesIllegalArgumentException - if minimum is less than zero or the minimum is is greater
than the maximumpublic void setIdentifier(String identifier)
identifier - the unique identifier for this instancepublic String getIdentifier()
protected void createResources()
throws ResourceUnavailableException
ResourceUnavailableExceptionprotected void createResources(int number)
throws ResourceUnavailableException
number - the number of resources to createResourceUnavailableExceptionpublic void setMax(int max)
max - the maximum number of resourcesIllegalArgumentException - if maximum is less than the minimumpublic static ResourcePool getInstance(String key)
key - the identifier for the type of resource poolprotected void register()
protected void register(String key)
key - the identifier for the type of resource poolpublic static void register(String key, ResourcePool pool)
key - the identifier for the type of resource poolpool - the ResourcePool being registeredCopyright © GigaSpaces.