Class AbstractRequest<U extends SubRequest<U>,S,R>

java.lang.Object
org.snmp4j.agent.request.AbstractRequest<U,S,R>
All Implemented Interfaces:
Request<S,R,U>
Direct Known Subclasses:
SnmpRequest

public abstract class AbstractRequest<U extends SubRequest<U>,S,R> extends Object implements Request<S,R,U>
The AbstractRequest implements common elements of SNMP and AgentX requests and might be also used for other sub-agent request types.
Version:
3.1.0
Author:
Frank Fock
  • Field Details

    • subrequests

      protected List<U extends SubRequest<U>> subrequests
    • source

      protected S source
    • response

      protected R response
    • phase

      protected int phase
    • errorStatus

      protected int errorStatus
    • repeaterStartIndex

      protected int repeaterStartIndex
    • repeaterRowSize

      protected int repeaterRowSize
    • reprocessCounter

      protected int reprocessCounter
    • transactionID

      protected int transactionID
  • Constructor Details

    • AbstractRequest

      public AbstractRequest(S source)
  • Method Details

    • getSource

      public S getSource()
      Description copied from interface: Request
      Returns the initiating event object for the request.
      Specified by:
      getSource in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      an Object instance on whose behalf this request has been initiated.
    • getResponse

      public R getResponse()
      Description copied from interface: Request
      Returns the response object for this request.
      Specified by:
      getResponse in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      an object containing the response for this request.
    • isBulkRequest

      public abstract boolean isBulkRequest()
    • find

      public U find(org.snmp4j.smi.OID prefix)
      Description copied from interface: Request
      Finds the first sub-request whose OID starts with the supplied one.
      Specified by:
      find in interface Request<U extends SubRequest<U>,S,R>
      Parameters:
      prefix - the OID prefix of the sub-request OID.
      Returns:
      the first SubRequest instance of this request whose OID starts with prefix. If no such sub-request exits null is returned.
    • initSubRequests

      protected void initSubRequests()
    • setupSubRequests

      protected abstract void setupSubRequests()
    • getMaxPhase

      protected abstract int getMaxPhase()
    • nextPhase

      public int nextPhase()
      Description copied from interface: Request
      Initializes next phase and returns its identifier.
      Specified by:
      nextPhase in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      a phase identifier.
    • isComplete

      public boolean isComplete()
      Description copied from interface: Request
      Checks whether the response for this request is complete.
      Specified by:
      isComplete in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      true if all required data has been collected to create a response for this request, false otherwise.
    • get

      public U get(int index)
      Description copied from interface: Request
      Gets the sub-request at the specified index.
      Specified by:
      get in interface Request<U extends SubRequest<U>,S,R>
      Parameters:
      index - an index >= 0 and < size()
      Returns:
      a SnmpSubRequest instance.
    • getPhase

      public int getPhase()
      Description copied from interface: Request
      Gets the phase identifier of the current Two-Phase-Commit (2PC) phase of this request.
      Specified by:
      getPhase in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      a 2PC identifier
    • getErrorIndex

      public int getErrorIndex()
      Specified by:
      getErrorIndex in interface Request<U extends SubRequest<U>,S,R>
    • getErrorStatus

      public int getErrorStatus()
      Specified by:
      getErrorStatus in interface Request<U extends SubRequest<U>,S,R>
    • getTransactionID

      public int getTransactionID()
      Specified by:
      getTransactionID in interface Request<U extends SubRequest<U>,S,R>
    • setPhase

      public void setPhase(int phase) throws NoSuchElementException
      Description copied from interface: Request
      Sets the request phase.
      Specified by:
      setPhase in interface Request<U extends SubRequest<U>,S,R>
      Parameters:
      phase - a phase identifier.
      Throws:
      NoSuchElementException - if there is no such phase for this type of request.
    • resetCompletionStatus

      protected void resetCompletionStatus()
    • resetProcessedStatus

      public void resetProcessedStatus()
      Description copied from interface: Request
      Set the processed status of each (incomplete) sub-request to false.
      Specified by:
      resetProcessedStatus in interface Request<U extends SubRequest<U>,S,R>
    • setErrorStatus

      public void setErrorStatus(int errorStatus)
      Specified by:
      setErrorStatus in interface Request<U extends SubRequest<U>,S,R>
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getReprocessCounter

      public int getReprocessCounter()
      Description copied from interface: Request
      Returns the value of the reprocessing counter associated with this request. The reprocessing counter can be used to detect and handle endless-loop errors caused by instrumentation code not setting the completion status of a sub-request correctly.
      Specified by:
      getReprocessCounter in interface Request<U extends SubRequest<U>,S,R>
      Returns:
      0 after the initial (and normally last) processing iteration and n after the n-th reprocessing iteration.
      See Also:
    • incReprocessCounter

      public void incReprocessCounter()
      Description copied from interface: Request
      Increments the reprocess counter by one.
      Specified by:
      incReprocessCounter in interface Request<U extends SubRequest<U>,S,R>
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object