⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmpstandardobjectserver.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/*  * @(#)file      SnmpStandardObjectServer.java  * @(#)author    Sun Microsystems, Inc.  * @(#)version   1.11  * @(#)date      08/09/12  *  * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sun.jmx.snmp.agent;// java imports// import java.io.Serializable;import java.util.Hashtable;import java.util.Enumeration;import java.util.Vector;// jmx imports//import com.sun.jmx.snmp.SnmpOid;import com.sun.jmx.snmp.SnmpValue;import com.sun.jmx.snmp.SnmpVarBind;import com.sun.jmx.snmp.SnmpStatusException;// SNMP Runtime imports///** * <p> * This class is a utility class that transform SNMP GET / SET requests * into series of get<i>AttributeName</i>() set<i>AttributeName</i>()  * invoked on the MBean. * </p> * * <p> * The transformation relies on the metadata information provided by the * {@link com.sun.jmx.snmp.agent.SnmpStandardMetaServer} object which is * passed as first parameter to every method. This SnmpStandardMetaServer * object is usually a Metadata object generated by <code>mibgen</code>. * </p> * * <p> * The MBean is not invoked directly by this class but through the * metadata object which holds a reference on it. * </p> * * <p><b><i> * This class is used internally by mibgen generated metadata objects and * you should never need to use it directly. * </b></i></p> * <p><b>This API is a Sun Microsystems internal API  and is subject  * to change without notice.</b></p> **/public class SnmpStandardObjectServer implements Serializable {    /**     * Generic handling of the <CODE>get</CODE> operation.     * <p> The default implementation of this method is to loop over the     * varbind list associated with the sub-request and to call      * <CODE>get(var.oid.getOidArc(depth), data);</CODE>     * <pre>     * public void get(SnmpStandardMetaServer meta, SnmpMibSubRequest req,      *                 int depth)     *	  throws SnmpStatusException {     *     *    final Object data = req.getUserData();     *     *    for (Enumeration e= req.getElements(); e.hasMoreElements();) {     *     *        final SnmpVarBind var= (SnmpVarBind) e.nextElement();      *     *        try {     *            // This method will generate a SnmpStatusException     *            // if `depth' is out of bounds.     *            //     *            final long id = var.oid.getOidArc(depth);     *            var.value = meta.get(id, data);     *        } catch(SnmpStatusException x) {     *            req.registerGetException(var,x);     *        }     *    }     * }     * </pre>     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources.     * <p>     *     * @param meta  A pointer to the generated meta-data object which     *              implements the <code>SnmpStandardMetaServer</code>     *              interface.     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    public void get(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 		    int depth) 	throws SnmpStatusException {	final Object data = req.getUserData();        for (Enumeration e= req.getElements(); e.hasMoreElements();) {            final SnmpVarBind var= (SnmpVarBind) e.nextElement(); 	    try {		final long id = var.oid.getOidArc(depth);		var.value = meta.get(id, data);            } catch(SnmpStatusException x) {		req.registerGetException(var,x);	    }	}    }    /**     * Generic handling of the <CODE>set</CODE> operation.     * <p> The default implementation of this method is to loop over the     * varbind list associated with the sub-request and to call      * <CODE>set(var.value, var.oid.getOidArc(depth), data);</CODE>     * <pre>     * public void set(SnmpStandardMetaServer meta, SnmpMibSubRequest req,      *                 int depth)     *	  throws SnmpStatusException {     *     *    final Object data = req.getUserData();     *     *    for (Enumeration e= req.getElements(); e.hasMoreElements();) {     *     *        final SnmpVarBind var= (SnmpVarBind) e.nextElement();      *     *        try {     *            // This method will generate a SnmpStatusException     *            // if `depth' is out of bounds.     *            //     *            final long id = var.oid.getOidArc(depth);     *            var.value = meta.set(var.value, id, data);     *        } catch(SnmpStatusException x) {     *            req.registerSetException(var,x);     *        }     *    }     * }     * </pre>     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources.     * <p>     *     * @param meta  A pointer to the generated meta-data object which     *              implements the <code>SnmpStandardMetaServer</code>     *              interface.     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    public void set(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 		    int depth) 	throws SnmpStatusException {		final Object data = req.getUserData(); 	for (Enumeration e= req.getElements(); e.hasMoreElements();) {	    SnmpVarBind var = null;	    var = (SnmpVarBind) e.nextElement(); 	    try {		// This method will generate a SnmpStatusException		// if `depth' is out of bounds.		//		final long id = var.oid.getOidArc(depth);		var.value = meta.set(var.value, id, data);	    } catch(SnmpStatusException x) {		req.registerSetException(var,x);	    }	}    }    /**     * Generic handling of the <CODE>check</CODE> operation.     * <p> The default implementation of this method is to loop over the     * varbind list associated with the sub-request and to call      * <CODE>check(var.value, var.oid.getOidArc(depth), data);</CODE>     * <pre>     * public void check(SnmpStandardMetaServer meta, SnmpMibSubRequest req,      *                   int depth)     *	  throws SnmpStatusException {     *     *    final Object data = req.getUserData();     *     *    for (Enumeration e= req.getElements(); e.hasMoreElements();) {     *     *        final SnmpVarBind var= (SnmpVarBind) e.nextElement();      *     *        try {     *            // This method will generate a SnmpStatusException     *            // if `depth' is out of bounds.     *            //     *            final long id = var.oid.getOidArc(depth);     *            meta.check(var.value, id, data);     *        } catch(SnmpStatusException x) {     *            req.registerCheckException(var,x);     *        }     *    }     * }     * </pre>     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources, or if you need to implement some consistency     * checks between the different values provided in the varbind list.     * <p>     *     * @param meta  A pointer to the generated meta-data object which     *              implements the <code>SnmpStandardMetaServer</code>     *              interface.     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    public void check(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 		      int depth) 	throws SnmpStatusException {		final Object data = req.getUserData();		for (Enumeration e= req.getElements(); e.hasMoreElements();) {	    final SnmpVarBind var = (SnmpVarBind) e.nextElement(); 	    try {		// This method will generate a SnmpStatusException		// if `depth' is out of bounds.		//		final long id = var.oid.getOidArc(depth);		meta.check(var.value,id,data);	    } catch(SnmpStatusException x) {		req.registerCheckException(var,x);	    }	}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -