2 * Copyright (c) 2003 University of Murcia. All rights reserved.
\r
3 * --------------------------------------------------------------
\r
4 * For more information, please see <http://www.umu.euro6ix.org/>.
\r
7 package org.umu.cops.stack;
\r
9 import java.net.UnknownHostException;
\r
12 * COPS IPv4 Interface
\r
14 * @version COPSIpv4Interface.java, v 1.00 2003
\r
17 public abstract class COPSIpv4Interface extends COPSInterface {
\r
19 protected COPSObjHeader _objHdr;
\r
20 private COPSIpv4Address _addr;
\r
21 private int _ifindex;
\r
25 * Method isIpv4Address
\r
30 public boolean isIpv4Address() {
\r
35 * Method setIpAddress
\r
37 * @param hostName a String
\r
39 * @throws UnknownHostException
\r
42 public void setIpAddress(String hostName) throws UnknownHostException {
\r
43 _addr.setIpAddress(hostName);
\r
51 * @throws UnknownHostException
\r
54 public String getIpName() throws UnknownHostException {
\r
55 return (_addr.getIpName());
\r
59 * Method getIpAddress
\r
64 public int getIpAddress() {
\r
65 return (_addr.getIpAddress());
\r
69 * Returns size in number of octects, including header
\r
74 public short getDataLength() {
\r
75 //Add the size of the header also
\r
76 return (_objHdr.getDataLength());
\r
79 protected COPSIpv4Interface() {
\r
80 _objHdr = new COPSObjHeader();
\r
81 _objHdr.setCType((byte) 1);
\r
82 _objHdr.setDataLength((short) (_addr.getDataLength() + 4));
\r
85 protected COPSIpv4Interface(byte[] dataPtr) {
\r
86 _objHdr = new COPSObjHeader();
\r
87 _objHdr.parse(dataPtr);
\r
88 // _objHdr.checkDataLength();
\r
90 byte[] buf = new byte[4];
\r
91 System.arraycopy(dataPtr,4,buf,0,4);
\r
95 _ifindex |= ((int) dataPtr[8]) << 24;
\r
96 _ifindex |= ((int) dataPtr[9]) << 16;
\r
97 _ifindex |= ((int) dataPtr[10]) << 8;
\r
98 _ifindex |= ((int) dataPtr[11]) & 0xFF;
\r
100 _objHdr.setDataLength((short) (_addr.getDataLength() + 4));
\r