- java.lang.Object
-
- org.snmp4j.agent.request.SnmpRequest.SnmpSubRequest
-
- All Implemented Interfaces:
EventListener
,RequestStatusListener
,SnmpSubRequest<SnmpRequest.SnmpSubRequest>
,SubRequest<SnmpRequest.SnmpSubRequest>
- Enclosing class:
- SnmpRequest
public class SnmpRequest.SnmpSubRequest extends Object implements SnmpSubRequest<SnmpRequest.SnmpSubRequest>, RequestStatusListener
The SnmpSubRequest represents a single variable binding request of a SNMP PDU.- Version:
- 3.0
- Author:
- Frank Fock
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SnmpSubRequest(SnmpSubRequest<?> predecessor, int index)
protected
SnmpSubRequest(org.snmp4j.smi.VariableBinding subrequest, int index)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
completed()
Marks the sub-request as completed.int
getErrorStatus()
Gets the error status for this sub-request.int
getIndex()
Returns the index of this subrequest in the request.MOServerLookupEvent
getLookupEvent()
protected MOScope
getNextScope(org.snmp4j.smi.OID previousOID)
MOQuery
getQuery()
Gets the query previously associated with this sub-request.SnmpRequest
getRequest()
Gets the request this sub-request belongs to.MOScope
getScope()
Gets the scope for this subrequest.SnmpRequest
getSnmpRequest()
RequestStatus
getStatus()
Gets the status object associated with this sub-request.ManagedObject<? super SnmpRequest.SnmpSubRequest>
getTargetMO()
Gets theManagedObject
that is responsible for processing this sub-request.Object
getUndoValue()
Gets the undo value object associated with this sub-request.Object
getUserObject()
Gets the user object that has previously associated with this sub-request.org.snmp4j.smi.VariableBinding
getVariableBinding()
Returns the variable binding associated with the sub-request.boolean
hasError()
Indicates whether this (sub-)request has an error.boolean
isComplete()
Checks whether the sub-request has been completed and needs no further processing.SubRequestIterator<SnmpRequest.SnmpSubRequest>
repetitions()
Returns an iterator on the repetitions of this sub-request.void
requestStatusChanged(RequestStatusEvent event)
void
setErrorStatus(int errorStatus)
Sets the error status for this sub-request.void
setLookupEvent(MOServerLookupEvent lookupEvent)
void
setQuery(MOQuery query)
Sets the query associated with this subrequest.void
setStatus(RequestStatus status)
void
setTargetMO(ManagedObject<? super SnmpRequest.SnmpSubRequest> managedObject)
Sets theManagedObject
that is determined as the target object of this sub-request by the agent framework.void
setUndoValue(Object undoInformation)
Associates an undo value object with this sub-request.void
setUserObject(Object userObject)
Sets the user object.String
toString()
void
updateNextRepetition()
Updates the next repetition's scope and reset any previously set query tonull
.
-
-
-
Constructor Detail
-
SnmpSubRequest
protected SnmpSubRequest(org.snmp4j.smi.VariableBinding subrequest, int index)
-
SnmpSubRequest
protected SnmpSubRequest(SnmpSubRequest<?> predecessor, int index)
-
-
Method Detail
-
getNextScope
protected MOScope getNextScope(org.snmp4j.smi.OID previousOID)
-
getRequest
public SnmpRequest getRequest()
Description copied from interface:SubRequest
Gets the request this sub-request belongs to.- Specified by:
getRequest
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a Request instance.
-
getStatus
public RequestStatus getStatus()
Description copied from interface:SubRequest
Gets the status object associated with this sub-request.- Specified by:
getStatus
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a RequestStatus instance.
-
getVariableBinding
public org.snmp4j.smi.VariableBinding getVariableBinding()
Description copied from interface:SubRequest
Returns the variable binding associated with the sub-request. In order to process a sub-request this variable binding needs to be modified (if not an error condition prevents that).- Specified by:
getVariableBinding
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- the
VariableBinding
that holds the sub-request result or operation parameter (in case of a SET request).
-
setStatus
public void setStatus(RequestStatus status)
- Specified by:
setStatus
in interfaceSnmpSubRequest<SnmpRequest.SnmpSubRequest>
-
getUndoValue
public Object getUndoValue()
Description copied from interface:SubRequest
Gets the undo value object associated with this sub-request.- Specified by:
getUndoValue
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- an Object that has previously been associated with this request by
calling
SubRequest.setUndoValue(java.lang.Object)
.
-
setUndoValue
public void setUndoValue(Object undoInformation)
Description copied from interface:SubRequest
Associates an undo value object with this sub-request. The undo value is internally used by the SNMP4J-Agent API and should therefore not be altered externally. One exception to this rule is an implementation of theManagedObject
interface that does not extend any other API class.- Specified by:
setUndoValue
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Parameters:
undoInformation
- an object that represents/contains all necessary information to undo this sub-request.
-
requestStatusChanged
public void requestStatusChanged(RequestStatusEvent event)
- Specified by:
requestStatusChanged
in interfaceRequestStatusListener
-
getScope
public MOScope getScope()
Description copied from interface:SubRequest
Gets the scope for this subrequest. The scope is solely defined by this sub-request and possible request processing that has already excluded managed objects from the scope of this sub-request.- Specified by:
getScope
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a
MOScope
instance.
-
completed
public void completed()
Description copied from interface:SubRequest
Marks the sub-request as completed. This is a shortcut for callingSubRequest.getStatus()
and thenRequestStatus.setPhaseComplete(boolean)
totrue
.- Specified by:
completed
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
-
hasError
public boolean hasError()
Description copied from interface:SubRequest
Indicates whether this (sub-)request has an error.- Specified by:
hasError
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
true
if this request (and thus also this sub-request) has an error status greater than zero.
-
isComplete
public boolean isComplete()
Description copied from interface:SubRequest
Checks whether the sub-request has been completed and needs no further processing.- Specified by:
isComplete
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
true
if the sub-request has been finished and should not be processed any more.
-
setTargetMO
public void setTargetMO(ManagedObject<? super SnmpRequest.SnmpSubRequest> managedObject)
Description copied from interface:SubRequest
Sets theManagedObject
that is determined as the target object of this sub-request by the agent framework. For SET requests the target managed object is locked and referenced here to make sure that all locks are released when a request is answered. In addition, SET requests are processed in multiple phases and referencing the target managed objects increases performance.- Specified by:
setTargetMO
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Parameters:
managedObject
- theManagedObject
responsible for processing this sub- request.
-
getTargetMO
public ManagedObject<? super SnmpRequest.SnmpSubRequest> getTargetMO()
Description copied from interface:SubRequest
Gets theManagedObject
that is responsible for processing this sub-request.- Specified by:
getTargetMO
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
ManagedObject
instance.
-
getLookupEvent
public MOServerLookupEvent getLookupEvent()
- Specified by:
getLookupEvent
in interfaceSnmpSubRequest<SnmpRequest.SnmpSubRequest>
-
setLookupEvent
public void setLookupEvent(MOServerLookupEvent lookupEvent)
- Specified by:
setLookupEvent
in interfaceSnmpSubRequest<SnmpRequest.SnmpSubRequest>
-
getSnmpRequest
public SnmpRequest getSnmpRequest()
- Specified by:
getSnmpRequest
in interfaceSnmpSubRequest<SnmpRequest.SnmpSubRequest>
-
setErrorStatus
public void setErrorStatus(int errorStatus)
Description copied from interface:SubRequest
Sets the error status for this sub-request. Calling this method is a shortcut for
.SubRequest.getStatus()
.setErrorStatus(int errorStatus)- Specified by:
setErrorStatus
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Parameters:
errorStatus
- a SNMPv2/v3 error status.
-
getIndex
public int getIndex()
Description copied from interface:SubRequest
Returns the index of this subrequest in the request.- Specified by:
getIndex
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- the zero based index.
-
setQuery
public void setQuery(MOQuery query)
Description copied from interface:SubRequest
Sets the query associated with this subrequest. The query is not used by the request itself but may be stored here for further reference while processing this sub-requests.- Specified by:
setQuery
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Parameters:
query
- aMOQuery
instance representing the query resulting from this sub-request.
-
getQuery
public MOQuery getQuery()
Description copied from interface:SubRequest
Gets the query previously associated with this sub-request. A sub-request is associated during requests processing with a instrumentation query.- Specified by:
getQuery
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a
MOQuery
that describes which manage objects match this sub-request.
-
repetitions
public SubRequestIterator<SnmpRequest.SnmpSubRequest> repetitions()
Description copied from interface:SubRequest
Returns an iterator on the repetitions of this sub-request. On requests other than GETBULK requests this method returns an empty iterator.- Specified by:
repetitions
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a SubRequestIterator enumerating the repetitions on this sub-requests starting with this sub-request.
-
updateNextRepetition
public void updateNextRepetition()
Description copied from interface:SubRequest
Updates the next repetition's scope and reset any previously set query tonull
. The scope of the next repetition is updated according to the value of this variable binding. If this sub-request has an error status or exception value, the following repetitions are set to the same value and exception. Otherwise, the scope of the following sub-request is the open interval from this sub-request's OID (not-including) to any OID value.- Specified by:
updateNextRepetition
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
-
getErrorStatus
public final int getErrorStatus()
Description copied from interface:SubRequest
Gets the error status for this sub-request. Calling this method is a shortcut for
.SubRequest.getStatus()
.getErrorStatus()- Specified by:
getErrorStatus
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- a SNMPv2/v3 error status.
-
getUserObject
public Object getUserObject()
Description copied from interface:SubRequest
Gets the user object that has previously associated with this sub-request.- Specified by:
getUserObject
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Returns:
- an object.
-
setUserObject
public void setUserObject(Object userObject)
Description copied from interface:SubRequest
Sets the user object. The user object can be used to associate resources or any other type of information necessary for a managed object instance to process a SNMP request. When the request is processed, this reference will be set tonull
.- Specified by:
setUserObject
in interfaceSubRequest<SnmpRequest.SnmpSubRequest>
- Parameters:
userObject
- an object that is not processed or interpreted by the agent API.
-
-