Package mondrian.util

Class FauxMemoryMonitor

  • All Implemented Interfaces:
    MemoryMonitor

    public class FauxMemoryMonitor
    extends Object
    implements MemoryMonitor
    The FauxMemoryMonitor implements the MemoryMonitor interface but does nothing: all methods are empty.
    Since:
    Feb 03 2007
    Author:
    Richard M. Emberson
    • Method Detail

      • addListener

        public boolean addListener​(MemoryMonitor.Listener listener,
                                   int thresholdPercentage)
        Description copied from interface: MemoryMonitor
        Adds a Listener to the MemoryMonitor with a given threshold percentage.

        If the threshold is below the Java5 memory managment system's threshold, then the Listener is notified from within this method.

        Specified by:
        addListener in interface MemoryMonitor
        Parameters:
        listener - the Listener to be added.
        thresholdPercentage - the threshold percentage for this Listener.
        Returns:
        true if the Listener was added and false otherwise.
      • addListener

        public boolean addListener​(MemoryMonitor.Listener listener)
        Description copied from interface: MemoryMonitor
        Adds a Listener using the default threshold percentage.

        If the threshold is below the Java5 memory managment system's threshold, then the Listener is notified from within this method.

        Specified by:
        addListener in interface MemoryMonitor
        Parameters:
        listener - the Listener to be added.
        Returns:
        true if the Listener was added and false otherwise.
      • updateListenerThreshold

        public void updateListenerThreshold​(MemoryMonitor.Listener listener,
                                            int percentage)
        Description copied from interface: MemoryMonitor
        Changes the threshold percentage of a given Listener.

        If the new value is below the system's current value, then the Listener will have its notification callback called while in this method - so a client should always check if its notification method was called immediately after calling this method.

        This method can be used if, for example, an algorithm has different approaches that result in different memory usage profiles; one, large memory but fast and a second which is low-memory but slow. The algorithm starts with the large memory approach, receives a low memory notification, switches to the low memory approach and changes when it should be notified for this new approach. The first approach need to be notified at a lower percentage because it uses lots of memory, possibly quickly; while the second approach, possibly a file based algorithm, has smaller memory requirements and uses memory less quickly thus one can live with a higher notification threshold percentage.

        Specified by:
        updateListenerThreshold in interface MemoryMonitor
        Parameters:
        listener - the Listener being updated.
        percentage - new percentage threshold.
      • removeListener

        public boolean removeListener​(MemoryMonitor.Listener listener)
        Description copied from interface: MemoryMonitor
        Removes a Listener from the MemoryMonitor. Returns true if listener was removed and false otherwise.
        Specified by:
        removeListener in interface MemoryMonitor
        Parameters:
        listener - the listener to be removed
        Returns:
        true if listener was removed.
      • removeAllListener

        public void removeAllListener()
        Description copied from interface: MemoryMonitor
        Clear out all Listeners and turnoff JVM memory notification.
        Specified by:
        removeAllListener in interface MemoryMonitor
      • getMaxMemory

        public long getMaxMemory()
        Description copied from interface: MemoryMonitor
        Returns the maximum memory usage.
        Specified by:
        getMaxMemory in interface MemoryMonitor
        Returns:
        the maximum memory usage.
      • getUsedMemory

        public long getUsedMemory()
        Description copied from interface: MemoryMonitor
        Returns the current memory used.
        Specified by:
        getUsedMemory in interface MemoryMonitor
        Returns:
        the current memory used.