Class MaxQueueSize

  • All Implemented Interfaces:
    adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, Serializable

    public class MaxQueueSize
    extends AbstractEnqueueGuard
    Ensures that the queue doesn't exceed the specified size; waits till the queue can accept data again.
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int m_Limit
      the limit for the queue.
      protected int m_Wait
      the time in msec to wait between checks.
      • Fields inherited from class adams.core.option.AbstractOptionHandler

        m_OptionManager
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
    • Constructor Summary

      Constructors 
      Constructor Description
      MaxQueueSize()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void defineOptions()
      Adds options to the internal list of options.
      protected String doEnqueue​(adams.flow.control.StorageQueueHandler handler, Object input, long retrievalDelay)
      Enqueues the object if possible.
      int getLimit()
      Returns the maximum allowed queue size.
      int getWait()
      Returns the time to wait between checks.
      String globalInfo()
      Returns a string describing the object.
      String limitTipText()
      Returns the tip text for this property.
      void setLimit​(int value)
      Sets the maximum allowed queue size.
      void setWait​(int value)
      Sets the time to wait between checks.
      String waitTipText()
      Returns the tip text for this property.
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, initialize, loggingLevelTipText, newOptionManager, reset, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
      • Methods inherited from interface adams.core.logging.LoggingLevelHandler

        getLoggingLevel
    • Field Detail

      • m_Limit

        protected int m_Limit
        the limit for the queue.
      • m_Wait

        protected int m_Wait
        the time in msec to wait between checks.
    • Constructor Detail

      • MaxQueueSize

        public MaxQueueSize()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.core.option.AbstractOptionHandler
      • setLimit

        public void setLimit​(int value)
        Sets the maximum allowed queue size.
        Parameters:
        value - the limit, <1 for unlimited
      • getLimit

        public int getLimit()
        Returns the maximum allowed queue size.
        Returns:
        the limit <0 for unlimited
      • limitTipText

        public String limitTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setWait

        public void setWait​(int value)
        Sets the time to wait between checks.
        Parameters:
        value - the time (msec)
      • getWait

        public int getWait()
        Returns the time to wait between checks.
        Returns:
        the time (msec)
      • waitTipText

        public String waitTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • doEnqueue

        protected String doEnqueue​(adams.flow.control.StorageQueueHandler handler,
                                   Object input,
                                   long retrievalDelay)
        Enqueues the object if possible.
        Specified by:
        doEnqueue in class AbstractEnqueueGuard
        Parameters:
        handler - the queue to use
        input - the data to queue
        retrievalDelay - the retrieval delay to impose
        Returns:
        null if successful, otherwise error message