Class AbstractRequest<U extends SubRequest<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 Detail

      • 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 Detail

      • AbstractRequest

        public AbstractRequest​(S source)
    • Method Detail

      • 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
      • 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>
      • 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:
        Request.incReprocessCounter()