All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ocap.diagnostics.MIBManager Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
package org.ocap.diagnostics;

/**
 * The MIBManager class provides Management Information Base (MIB)
 * access to the host's MIB.  Applications may use the MIBManager 
 * to make MIB queries.  In addition, applications can set a MIB Object
 * that can be retrieved from the Host device using SNMP.
 */
public abstract class MIBManager
{
    // MIB Accessibility
    public final static int MIB_ACCESS_READONLY = 0;
    public final static int MIB_ACCESS_READWRITE = 1;
    public final static int MIB_ACCESS_WRITEONLY = 2;

    /**
     * Used to identify the subdevice type and query eCM MIB values.
     */
    public final static int ECM_SUBDEVICE = 1;

    /**
     * Used to identify the subdevice type and query Host MIB values.
     */
    public final static int ESTB_SUBDEVICE = ECM_SUBDEVICE + 1;


    /**
     * Protected constructor, no application access.
     */
    protected MIBManager()
    {
    }

    /**
     * Gets the MIBManager.
     * 
     * @return The MIBManager.
     * 
     * @throws SecurityException if the calling application does not have
     *      MonitorAppPermission("diagnostics"). 
     */
    public static MIBManager getInstance()
    {
        return null;
    }

    /**
     * Registers a MIB object by adding the OID and listener to the MIB tables.  
     * OID must be unique and not pre-existing.
     * OID must include a trailing ".0" for leaf items or but not include the instance ID
     * for table column items.  (The same listener may be installed to will be invoked
     * for all row instances for table column items. any number of OIDs, if desired.)
     * Table OIDs may be the OID of the start of the table or a column 
     * within the table, depending upon whether the implementation desires
     * handling all table values with a single listener, or have different
     * listeners for each column.  
     * 
     * @param oid The Object Identifier of the MIB being registered.  The
     *      format of the string is based on the format defined by RFC 2578 for
     *      OBJECT IDENTIFIER definition.  Terms in the string are period
     *      delimited, e.g. "1.3.6.1.4.1".
     * @param access Indicates allowed access to the MIB being registered.  See
     *      access constants in the class for valid values.
     * @param leaf When true indicates if the object is a leaf, otherwise the
     *      object is a non-leaf table column.
     * @param dataType The data type of the MIB being registered.  See constants
     *      in {@link MIBDefinition} for valid values.
     * @param listener Listener to the MIB being registered.  Must not be null.
     * 
     * @throws IllegalArgumentException if oid is an invalid oid string, 
     *      if oid is already installed, or any other parameter has an 
     *      invalid value.
     */
    public abstract void registerOID(String oid,
                                     int access,
                                     boolean leaf,
                                     int dataType,
                                     MIBListener listener);
                   
    /**
     * Unregisters a previously registered OID if the OID was
     * registered by the same application. 
     * 
     * @param oid An object identifier that was passed to the registerOID
     *      method.
     * 
     * @throws IllegalArgumentException if parameter does not match an OID
     *      registered with the registerOID method.
     */ 
    public abstract void unregisterOID(String oid);


    /**
     * Makes a query for all MIB objects matching the oid parameter, as
     * well as any descendants in the MIB tree.  If the object to be searched
     * for is a leaf the trailing ".0" must be included for an exact match.
     * A query for a leaf object SHALL return just that object if found.  A
     * query for a non-leaf OID SHALL return all MIB objects below that OID.
     * Existing leaf and table items SHALL be included in the results;
     * branch-nodes without data SHALL NOT.  For example; If a query is for
     * OID 1.2.3.4 then all table items and leafs below that OID are returned.
     * If OIDs 1.2.3.4.1 and 1.2.3.4.2 are the only items below the query object
     * they would be returned.  The query SHALL NOT return items outside the
     * OID.  For example; if 1.2.3.4 is the query OID then 1.2.3.5 is not
     * returned.

* * If the CableCARD supports MIB APDUs then this method SHALL be able to * query the CableCARD MIB objects.

* * @param oid The object identifier to search for. The format of the * string is based on the format defined by RFC 2578 for * OBJECT IDENTIFIER definition. Terms in the string * are period delimited, e.g. "1.3.6.1.4.1". * * @return An array of MIB definitions. The array is lexographically ordered * by increasing value of OID with the lowest value in the first element * of the array. */ public abstract MIBDefinition [] queryMibs(String oid); /** * Makes a query for all MIB objects matching the oid parameter, as * well as any descendants in the MIB tree, in a specific sub-device * including eSTB and eCM. If the object to be searched * for is a leaf the trailing ".0" must be included for an exact match. * A query for a leaf object SHALL return just that object if found. A * query for a non-leaf OID SHALL return all MIB objects below that OID. * Existing leaf and table items SHALL be included in the results; * branch-nodes without data SHALL NOT. For example; If a query is for * OID 1.2.3.4 then all table items and leafs below that OID are returned. * If OIDs 1.2.3.4.1 and 1.2.3.4.2 are the only items below the query object * they would be returned. The query SHALL NOT return items outside the * OID. For example; if 1.2.3.4 is the query OID then 1.2.3.5 is not * returned.

* * If ECM_SUBDEVICE is the subDevice argument value the implementation SHALL * allow eCM MIB query in an implementation specific fashion. The Host * device may restrict eCM MIB access to a particular subset of MIB objects; * see Host CFR for required eCM MIB support. * * @param subDevice The sub-device to read the MIB from. Using * ESTB_SUBDEVICE is equivalent to calling * queryMibs(String). * @param oid The object identifier to search for. The format of the * string is based on the format defined by RFC 2578 for * OBJECT IDENTIFIER definition. Terms in the string * are period delimited, e.g. "1.3.6.1.4.1". * * @return An array of MIB definitions. The array is lexographically ordered * by increasing value of OID with the lowest value in the first element * of the array. * * @throws IllegalArgumentException if the subDevice is not one of the * ECM_SUBDEVICE or ESTB_SUBDEVICE. */ public abstract MIBDefinition [] queryMibs(int subDevice, String oid); /** * Sets a Host MIB object. The OID in the MIBObject parameter must reference * a writable MIB object supported by the implementation.

* * Note; This method can only set writable MIBs in the Host device * (i.e. ESTB_SUBDEVICE). Writable MIBs for other sub-devices such as * CableCARD and eCM cannot be set using this method.

* * @param mibToSet The MIB to set. The OID in the MIBObject SHALL be used to * replace values with the data array in the parameter. * * @throws IllegalArgumentException if the OID in the MIBObject parameter does * not reference a supported Host MIB or if the data attribute in the MIBObject * parameter is not in the correct ASN.1 form for the OID. * @throws SecurityException if the MIB is not writable or if the calling * application does not have MonitorAppPermission("diagnostics"). */ public abstract void setMIBObject(MIBObject mibToSet); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy