File: SNMPRequestListener.java

package info (click to toggle)
java-snmp 1.4.2-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 596 kB
  • ctags: 611
  • sloc: java: 5,380; xml: 49; makefile: 37
file content (111 lines) | stat: -rw-r--r-- 7,146 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
 * SNMP Package
 *
 * Copyright (C) 2004, Jonathan Sevy <jsevy@mcs.drexel.edu>
 *
 * This is free software. Redistribution and use in source and binary forms, with
 * or without modification, are permitted provided that the following conditions
 * are met:
 *
 *  1. Redistributions of source code must retain the above copyright notice, this
 *     list of conditions and the following disclaimer.
 *  2. Redistributions in binary form must reproduce the above copyright notice,
 *     this list of conditions and the following disclaimer in the documentation 
 *     and/or other materials provided with the distribution.
 *  3. The name of the author may not be used to endorse or promote products 
 *     derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 
 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */


package snmp;


/**
*    SNMPRequestListener is an interface that must be implemented by any class which wishes
*    to act as a handler for request messages sent from remote SNMP management entities.
*    The SNMPv1AgentInterface class listens for request messages, and passes any it receives on to
*    SNMPRequestListener subclasses that have registered with it through its addRequestListener() method.
*/

public interface SNMPRequestListener
{
    
    /**
    *   Handles Get- or Set- request messages. The supplied request PDU may contain multiple OIDs; this
    *   method should process those OIDs it understands, and return an SNMPVarBindList containing those OIDs
    *   which it has handled and their corresponding values. The order of returned OID-value pairs is not
    *   important, as the SNMPv1AgentInterface will order the information appropriately. Each implementer of
    *   SNMPRequestListener will likely handle only a subset of the list of supplied OIDs; those OIDs which
    *   are not relevant to a particular listener should be ignored, to be handled by another SNMPRequestListener. 
    *   If any OIDs remain unhandled after all listeners' processRequest() methods have been called, the 
    *   SNMPv1AgentInterface will return an appropriate error indication to the management entity.
    *
    *   @throws SNMPGetException, SNMPSetException
    *   If a listener receives a request for an OID which it is intended to handle, but there is a problem with
    *   the request - e.g., a set-request for a value which is read-only, or an incorrect value type for a set - the 
    *   listener should throw an SNMPGetException or SNMPSetException to indicate the error. The exception should 
    *   include both the index of the OID in the list of supplied OIDs, as well as an error status code (status values 
    *   are provided as constants in the SNMPRequestException class definition). The SNMPRequestException class and  
    *   subclasses provide constructors allowing the specification of the error index and status code. Note that the 
    *   error index follows the SNMP convention of starting at 1, not 0: thus if there is a problem with the first OID, 
    *   the error index should be 1. The SNMPAgentInterface will use the information in the exception to communicate 
    *   the error to the requesting management entity. The community name should also be used to determine if a request
    *   is valid for the supplied community name.
    *   
    */
    
    public SNMPSequence processRequest(SNMPPDU requestPDU, String communityName)
        throws SNMPGetException, SNMPSetException;
        
    
    
    /**
    *   Handles Get-Next- request messages. The supplied request PDU may contain multiple OIDs; this
    *   method should process those OIDs it understands, and return an SNMPVarBindList containing special
    *   variable pairs indicating those supplied OIDs which it has handled, i.e., it must indicate a
    *   supplied OID, the "next" OID, and the value of this next OID. To do this, the return value is a
    *   sequence of SNMPVariablePairs, in which the first component - the OID - is one of the supplied OIDs,
    *   and the second component - the value - is itself an SNMPVariablePair containing the "next" OID and
    *   its value:
    *
    *       return value = sequence of SNMPVariablePair(original OID, SNMPVariablePair(following OID, value)) 
    *
    *   In this way the SNMPv1AgentInterface which calls this method will be able to determine which of the 
    *   supplied OIDs each "next" OID corresponds to.
    *
    *   The order of returned "double" OID-(OID-value) pairs is not important, as the SNMPv1AgentInterface 
    *   will order the information appropriately in the response. Each implementer of
    *   SNMPRequestListener will likely handle only a subset of the list of supplied OIDs; those OIDs which
    *   are not relevant to a particular listener should be ignored, to be handled by another SNMPRequestListener. 
    *   If any OIDs remain unhandled after all listeners' processRequest() methods have been called, the 
    *   SNMPv1AgentInterface will return an appropriate error indication to the management entity.
    *
    *   @throws SNMPGetException
    *   If a listener receives a request for an OID which it is intended to handle, but there is a problem with
    *   the request - e.g., a get-next request for a value which is not readable for the supplied community name - 
    *   the listener should throw an SNMPGetException to indicate the error. The exception should 
    *   include both the index of the OID in the list of supplied OIDs, as well as an error status code (status values 
    *   are provided as constants in the SNMPRequestException class definition). The SNMPRequestException class and  
    *   subclasses provide constructors allowing the specification of the error index and status code. Note that the 
    *   error index follows the SNMP convention of starting at 1, not 0: thus if there is a problem with the first OID, 
    *   the error index should be 1. The SNMPAgentInterface will use the information in the exception to communicate 
    *   the error to the requesting management entity. The community name should also be used to determine if a request
    *   is valid for the supplied community name.
    *   
    */
    
    public SNMPSequence processGetNextRequest(SNMPPDU requestPDU, String communityName)
        throws SNMPGetException;
    
}