org.apache.activemq.usage
Class Usage<T extends Usage>
java.lang.Object
org.apache.activemq.usage.Usage<T>
- All Implemented Interfaces:
- Service
- Direct Known Subclasses:
- MemoryUsage
public abstract class Usage<T extends Usage>
- extends Object
- implements Service
Used to keep track of how much of something is being used so that a productive working set usage can be controlled.
Main use case is manage memory usage.
|
Constructor Summary |
Usage(T parent,
String name,
float portion)
|
usageLock
protected final ReentrantReadWriteLock usageLock
waitForSpaceCondition
protected final Condition waitForSpaceCondition
percentUsage
protected int percentUsage
parent
protected T extends Usage parent
name
protected String name
Usage
public Usage(T parent,
String name,
float portion)
retrieveUsage
protected abstract long retrieveUsage()
waitForSpace
public void waitForSpace()
throws InterruptedException
- Throws:
InterruptedException
waitForSpace
public boolean waitForSpace(long timeout)
throws InterruptedException
- Throws:
InterruptedException
waitForSpace
public boolean waitForSpace(long timeout,
int highWaterMark)
throws InterruptedException
- Parameters:
timeout -
- Returns:
- true if space
- Throws:
InterruptedException
isFull
public boolean isFull()
isFull
public boolean isFull(int highWaterMark)
addUsageListener
public void addUsageListener(UsageListener listener)
removeUsageListener
public void removeUsageListener(UsageListener listener)
getLimit
public long getLimit()
setLimit
public void setLimit(long limit)
- Sets the memory limit in bytes. Setting the limit in bytes will set the usagePortion to 0 since the UsageManager
is not going to be portion based off the parent. When set using Xbean, values of the form "20 Mb", "1024kb", and
"1g" can be used
onLimitChange
protected void onLimitChange()
getUsagePortion
public float getUsagePortion()
setUsagePortion
public void setUsagePortion(float usagePortion)
getPercentUsage
public int getPercentUsage()
getPercentUsageMinDelta
public int getPercentUsageMinDelta()
setPercentUsageMinDelta
public void setPercentUsageMinDelta(int percentUsageMinDelta)
- Sets the minimum number of percentage points the usage has to change before a UsageListener event is fired by the
manager.
- Parameters:
percentUsageMinDelta -
getUsage
public long getUsage()
setPercentUsage
protected void setPercentUsage(int value)
caclPercentUsage
protected int caclPercentUsage()
getName
public String getName()
toString
public String toString()
- Overrides:
toString in class Object
start
public void start()
- Specified by:
start in interface Service
stop
public void stop()
- Specified by:
stop in interface Service
addChild
protected void addChild(T child)
removeChild
protected void removeChild(T child)
notifyCallbackWhenNotFull
public boolean notifyCallbackWhenNotFull(Runnable callback)
- Parameters:
callback -
- Returns:
- true if the UsageManager was full. The callback will only be called if this method returns true.
getLimiter
public UsageCapacity getLimiter()
- Returns:
- the limiter
setLimiter
public void setLimiter(UsageCapacity limiter)
- Parameters:
limiter - the limiter to set
getPollingTime
public int getPollingTime()
- Returns:
- the pollingTime
setPollingTime
public void setPollingTime(int pollingTime)
- Parameters:
pollingTime - the pollingTime to set
setName
public void setName(String name)
getParent
public T getParent()
setParent
public void setParent(T parent)
setExecutor
public void setExecutor(ThreadPoolExecutor executor)
getExecutor
public ThreadPoolExecutor getExecutor()
isStarted
public boolean isStarted()
Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.