[SNMP4J] API wish

Mathias Bogaert m.bogaert at memenco.com
Wed Mar 16 00:28:22 CET 2005


Frank,

Here a example how my ideal SNMP API would look.

         snmp.send(pointerPDU, cableModem, new ResponseListener() {
             public void onResponse(ResponseEvent event) {
                 Integer macPointer = event.getResponse().getInteger(0);
                 if (macPointer != null) {
                     final PDU cpePdu = new PDU();
                     cpePdu.add(new VariableBinding(new 
OID(CPE_IP_ADDRESS + macPointer)));
                     snmp.send(cpePdu, event.getPeerTarget(), new 
ResponseListener() {
                         public void onResponse(ResponseEvent event) {
                             if (event.getResponse() != null) {
                                 // open database connection and dump 
data
                                 CableModemSample sample = new 
UnarchivedCableModemSample((CableModem) event.getPeerTarget());
                                 
sample.setDownstreamOctets(event.getResponse().getLong(0));
                                 
sample.setUpstreamOctets(event.getResponse().getLong(1));
                                 someDao.save(sample);
                             }
                             else {
                                 log.warn("time-out");
                             }
                         }
                     });
                 }
                 else {
                     log.warn("time-out");
                 }
             }
         });

1. notice the ResultSet like api for querying the returned values
2. notice how the CableModem class implements TargetDetails and is 
directly usable as a target
3. notice how the PeerTarget is passed to the second request

Cheers,
Mathias Bogaert




More information about the SNMP4J mailing list