public class ResourcePool<R extends IResource> extends Object implements IResourcePool<R>
| Modifier | Constructor and Description |
|---|---|
|
ResourcePool(IResourceFactory<R> resourceFactory,
int minResources,
int maxResources)
Creates a new Resources Pool with the specified resourceFactory, and max Resources.
|
protected |
ResourcePool(IResourceFactory<R> resourceFactory,
int minResources,
int maxResources,
R[] initialResources)
Creates a new Resources Pool with the specified resourceFactory, and max Resources.
|
| Modifier and Type | Method and Description |
|---|---|
int |
availableResources() |
void |
forAllResources(IResourceProcedure<R> procedure) |
void |
freeResource(R resourceToFree)
Free the specified resource.
|
R |
getResource() |
R |
getResource(boolean waitIfNeeded)
Returns a Resource from the pool.
|
protected R |
handleFullPool(boolean waitIfNeeded) |
int |
size() |
protected R |
tryAllocateNewPooledResource() |
public ResourcePool(IResourceFactory<R> resourceFactory, int minResources, int maxResources)
resourceFactory - resource factory instance for new resourcesminResources - resources to pre-allocate; can be zeromaxResources - upper bound on the number of resourcesprotected ResourcePool(IResourceFactory<R> resourceFactory, int minResources, int maxResources, R[] initialResources)
resourceFactory - resource factory instance for new resourcesminResources - resources to pre-allocate; can be zeromaxResources - upper bound on the number of resourcesinitialResources - initial array of resources to init the pool withpublic R getResource()
getResource in interface IResourcePool<R extends IResource>public R getResource(boolean waitIfNeeded)
getResource in interface IResourcePool<R extends IResource>protected R tryAllocateNewPooledResource()
protected R handleFullPool(boolean waitIfNeeded)
public void freeResource(R resourceToFree)
IResource.release()freeResource in interface IResourcePool<R extends IResource>public int availableResources()
availableResources in interface IResourcePool<R extends IResource>public int size()
size in interface IResourcePool<R extends IResource>public void forAllResources(IResourceProcedure<R> procedure)
forAllResources in interface IResourcePool<R extends IResource>Copyright © GigaSpaces.