// Home | Go Back //

/*
 * Copyright (c) 2002-2003 iReasoning Inc. All Rights Reserved.
 * 
 * This SOURCE CODE FILE, which has been provided by iReasoning Inc. as part
 * of an iReasoning Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of iReasoning Inc.  
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD IREASONING SOFTWARE, ITS
 * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
 * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
 * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
 * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
 * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
 * DERIVED FROM THIS SOURCE CODE FILE.
 */

package agent.mib2jni;
import java.io.*;
import java.util.*;
import com.ireasoning.util.*;
import com.ireasoning.protocol.snmp.*;
import javax.management.*;
import com.ireasoning.jni.*;

/**
 * Class represents ipAddrTable MIB object in RFC1213_MIB
 */
public class IpAddrTable extends DynamicTable implements IpAddrTableMBean
{
    /**
     * Constructor
     * @param root SnmpOID tree root
     * @param oid the SnmpOID of this table. For example, ".1.3.6.1.2.1.2.2" for IfTable in RFC1213  
     * @param args the objects passed from caller for Initialization purpose
     */
    public IpAddrTable (OIDTreeNode root, String oid, Object[] args)
    {
        super(root, oid, "ipAddrTable", IpAddrEntry.class, 60000 * 60);
    }

    /**
     * Creates a new instance of table entry object
     */
    public SnmpTableEntry newEntryInstance()
    {
        return new IpAddrEntry (this);
    }
    
    /**
     * Gets ipAdEntAddr value
     * @param ipAddrEntry table entry object
     */
    public SnmpIpAddress getIpAdEntAddr(SnmpTableEntry ipAddrEntry)
    {
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            // TODO: Add your implementation
            return entry._ipAdEntAddr;
        }
    }
    
    /**
     * Sets new ipAdEntAddr value
     * @param ipAddrEntry table entry object
     * @param newValue new value to be set
     */
    public void setIpAdEntAddr(SnmpTableEntry ipAddrEntry, SnmpIpAddress newValue)
    {
        // This MIB node is not writeable, so IpAddrTableMBean does not have this method
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            entry._ipAdEntAddr = newValue;
            // TODO: Add your implementation
        }
    }
    
    /**
     * Gets ipAdEntIfIndex value
     * @param ipAddrEntry table entry object
     */
    public int getIpAdEntIfIndex(SnmpTableEntry ipAddrEntry)
    {
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            // TODO: Add your implementation
            return entry._ipAdEntIfIndex;
        }
    }
    
    /**
     * Sets new ipAdEntIfIndex value
     * @param ipAddrEntry table entry object
     * @param newValue new value to be set
     */
    public void setIpAdEntIfIndex(SnmpTableEntry ipAddrEntry, int newValue)
    {
        // This MIB node is not writeable, so IpAddrTableMBean does not have this method
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            entry._ipAdEntIfIndex = newValue;
            // TODO: Add your implementation
        }
    }
    
    /**
     * Gets ipAdEntNetMask value
     * @param ipAddrEntry table entry object
     */
    public SnmpIpAddress getIpAdEntNetMask(SnmpTableEntry ipAddrEntry)
    {
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            // TODO: Add your implementation
            return entry._ipAdEntNetMask;
        }
    }
    
    /**
     * Sets new ipAdEntNetMask value
     * @param ipAddrEntry table entry object
     * @param newValue new value to be set
     */
    public void setIpAdEntNetMask(SnmpTableEntry ipAddrEntry, SnmpIpAddress newValue)
    {
        // This MIB node is not writeable, so IpAddrTableMBean does not have this method
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            entry._ipAdEntNetMask = newValue;
            // TODO: Add your implementation
        }
    }
    
    /**
     * Gets ipAdEntBcastAddr value
     * @param ipAddrEntry table entry object
     */
    public int getIpAdEntBcastAddr(SnmpTableEntry ipAddrEntry)
    {
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            // TODO: Add your implementation
            return entry._ipAdEntBcastAddr;
        }
    }
    
    /**
     * Sets new ipAdEntBcastAddr value
     * @param ipAddrEntry table entry object
     * @param newValue new value to be set
     */
    public void setIpAdEntBcastAddr(SnmpTableEntry ipAddrEntry, int newValue)
    {
        // This MIB node is not writeable, so IpAddrTableMBean does not have this method
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            entry._ipAdEntBcastAddr = newValue;
            // TODO: Add your implementation
        }
    }
    
    /**
     * Gets ipAdEntReasmMaxSize value
     * @param ipAddrEntry table entry object
     */
    public int getIpAdEntReasmMaxSize(SnmpTableEntry ipAddrEntry)
    {
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            // TODO: Add your implementation
            return entry._ipAdEntReasmMaxSize;
        }
    }
    
    /**
     * Sets new ipAdEntReasmMaxSize value
     * @param ipAddrEntry table entry object
     * @param newValue new value to be set
     */
    public void setIpAdEntReasmMaxSize(SnmpTableEntry ipAddrEntry, int newValue)
    {
        // This MIB node is not writeable, so IpAddrTableMBean does not have this method
        synchronized (ipAddrEntry)
        {
            IpAddrEntry entry = (IpAddrEntry) ipAddrEntry;
            entry._ipAdEntReasmMaxSize = newValue;
            // TODO: Add your implementation
        }
    }
    
}