Class MOTableSizeLimit<R extends MOTableRow>

java.lang.Object
org.snmp4j.agent.mo.util.MOTableSizeLimit<R>
All Implemented Interfaces:
EventListener, MOTableRowListener<R>
Direct Known Subclasses:
LogMOTableSizeLimit

public class MOTableSizeLimit<R extends MOTableRow> extends Object implements MOTableRowListener<R>
This class implements a size limit on the number of rows in a table. If the limit is reached or exceeded, no more additional rows can be added by SNMP means.

Use the DefaultMOServer.registerTableRowListener(org.snmp4j.agent.MOServer, org.snmp4j.agent.mo.MOTableRowListener<R>) method to register this table row listener for all tables in your agent, in order to be able to control the table sizes of all the tables in a server.

Since:
1.1.5
Version:
1.4
Author:
Frank Fock
  • Field Details

    • PROPERTY_PREFIX

      public static final String PROPERTY_PREFIX
      The property prefix each size limit definition has to start with. The OID subtree for which the definition is effective is then appended as follows: snmp4j.MOTableSizeLimit.&lt;OID&gt;=&lt;limit&gt; where limit is a positive number or zero.
      See Also:
  • Constructor Details

    • MOTableSizeLimit

      public MOTableSizeLimit(int maxNumRows)
    • MOTableSizeLimit

      public MOTableSizeLimit(Properties limits)
  • Method Details

    • rowChanged

      public void rowChanged(MOTableRowEvent<R> event)
      A column or a complete row is changed/has been changed.
      Specified by:
      rowChanged in interface MOTableRowListener<R extends MOTableRow>
      Parameters:
      event - a MOTableRowEvent describing the event. To veto the event the MOTableRowEvent.setVetoStatus(int) and optionally also the MOTableRowEvent.setVetoColumn(int) can be called.
    • removeEldest

      protected boolean removeEldest(MOTableRowEvent<R> triggeringEvent, int numRows)
      Remove try to remove a given number of eldest rows of the table referred to in the triggering event object.
      Parameters:
      triggeringEvent - the MOTableRowEvent object that describes the table with exceeding row limit.
      numRows - the number of rows to remove (if possible).
      Returns:
      true if one or more rows could be removed and false if the causing event should be denied/rejected. The default implementation returns false always.
    • setMaxNumRows

      public void setMaxNumRows(int maxNumRows)
    • getMaxNumRows

      public int getMaxNumRows()
    • getLimits

      public SortedMap<org.snmp4j.smi.OID,Integer> getLimits()
    • setLimits

      public void setLimits(Properties limits)