001
002 package org.activemq.io.util;
003
004
005
006
007 public interface MemoryManageable {
008
009 /**
010 * Get an id that can be used to identify the object.
011 *
012 * @return an object that can be used as an Id for this object.
013 */
014 public abstract Object getMemoryId();
015
016 /**
017 * Get a hint about how much memory this Packet is consuming
018 *
019 * @return an aproximation of the current memory used by this instance
020 */
021 public abstract int getMemoryUsage();
022
023 /**
024 * Increment reference count for bounded memory collections
025 *
026 * @return the incremented reference value
027 * @see org.activemq.io.util.MemoryBoundedQueue
028 */
029 public abstract int incrementMemoryReferenceCount();
030
031 /**
032 * Decrement reference count for bounded memory collections
033 *
034 * @return the decremented reference value
035 * @see org.activemq.io.util.MemoryBoundedQueue
036 */
037 public abstract int decrementMemoryReferenceCount();
038
039 /**
040 * @return the current reference count for bounded memory collections
041 * @see org.activemq.io.util.MemoryBoundedQueue
042 */
043 public abstract int getMemoryUsageReferenceCount();
044
045 public abstract int getPriority();
046
047 }