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, StoreUsage, TempUsage
public abstract class Usage<T extends Usage>
- extends java.lang.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,
java.lang.String name,
float portion)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
usageMutex
protected final java.lang.Object usageMutex
percentUsage
protected int percentUsage
parent
protected T extends Usage parent
name
protected java.lang.String name
Usage
public Usage(T parent,
java.lang.String name,
float portion)
retrieveUsage
protected abstract long retrieveUsage()
waitForSpace
public void waitForSpace()
throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
waitForSpace
public boolean waitForSpace(long timeout)
throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
waitForSpace
public boolean waitForSpace(long timeout,
int highWaterMark)
throws java.lang.InterruptedException
- Parameters:
timeout
-
- Returns:
- true if space
- Throws:
java.lang.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 java.lang.String getName()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.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(java.lang.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(java.lang.String name)
getParent
public T getParent()
setParent
public void setParent(T parent)
setExecutor
public void setExecutor(java.util.concurrent.ThreadPoolExecutor executor)
getExecutor
public java.util.concurrent.ThreadPoolExecutor getExecutor()
Copyright © 2005-2012. All Rights Reserved.