1 // NAME
2 // $RCSfile: InterfaceGetNextPdu.java,v $
3 // DESCRIPTION
4 // [given below in javadoc format]
5 // DELTA
6 // $Revision: 3.17 $
7 // CREATED
8 // $Date: 2008/05/06 10:17:06 $
9 // COPYRIGHT
10 // Westhawk Ltd
11 // TO DO
12 //
13
14 /*
15 * Copyright (C) 2005 - 2006 by Westhawk Ltd
16 * <a href="www.westhawk.co.uk">www.westhawk.co.uk</a>
17 *
18 * Permission to use, copy, modify, and distribute this software
19 * for any purpose and without fee is hereby granted, provided
20 * that the above copyright notices appear in all copies and that
21 * both the copyright notice and this permission notice appear in
22 * supporting documentation.
23 * This software is provided "as is" without express or implied
24 * warranty.
25 * author <a href="mailto:snmp@westhawk.co.uk">Tim Panton</a>
26 */
27
28 package uk.co.westhawk.snmp.pdu;
29
30 /*-
31 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
32 * SNMP Java Client
33 * ჻჻჻჻჻჻
34 * Copyright 2023 MetricsHub, Westhawk
35 * ჻჻჻჻჻჻
36 * This program is free software: you can redistribute it and/or modify
37 * it under the terms of the GNU Lesser General Public License as
38 * published by the Free Software Foundation, either version 3 of the
39 * License, or (at your option) any later version.
40 *
41 * This program is distributed in the hope that it will be useful,
42 * but WITHOUT ANY WARRANTY; without even the implied warranty of
43 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44 * GNU General Lesser Public License for more details.
45 *
46 * You should have received a copy of the GNU General Lesser Public
47 * License along with this program. If not, see
48 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
49 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
50 */
51
52 import uk.co.westhawk.snmp.stack.*;
53 import uk.co.westhawk.snmp.pdu.*;
54 import java.util.*;
55
56
57 /**
58 * The class InterfaceGetNextPdu.
59 *
60 * This file is auto generated by the StubBrowser utility, using Mibble.
61 * See the uk/co/westhawk/stub/ directory.
62 *
63 * Added speed parameter and methods by hand.
64
65 * Make sure that you replace the package name and classname placeholders.
66 * Also, move this file to the correct package directory.
67 * If these things are not done, this class will not compile correctly!!
68 *
69 * @version $Revision: 3.17 $ $Date: 2008/05/06 10:17:06 $
70 */
71 public class InterfaceGetNextPdu extends InterfaceGetNextPduStub {
72 private static final String version_id = "@(#)$Id: InterfaceGetNextPdu.java,v 3.17 2008/05/06 10:17:06 birgita Exp $ Copyright Westhawk Ltd";
73
74 protected long _speed;
75
76 /**
77 * Constructor.
78 *
79 * @param con The context of the request
80 */
81 public InterfaceGetNextPdu(SnmpContextBasisFace con) {
82 super(con);
83 }
84
85 /**
86 * Returns the last calculates speed.
87 *
88 * @see #getSpeed(InterfaceGetNextPdu)
89 */
90 public long getSpeed() {
91 return _speed;
92 }
93
94 /**
95 * Calculates the speed of the interface. This is done by providing the
96 * method with <i>the previous value of this interface</i>. An interface
97 * is marked by its index. Do <i>not</i> confuse it
98 * with <i>the previous interface ifInOctets the MIB</i>.
99 * Total number of octets (received and transmitted) per second.
100 *
101 * @param old The previous value of this interface
102 */
103 public long getSpeed(InterfaceGetNextPdu old) {
104 _speed = -1;
105 if (this._ifOperStatus > 0
106 &&
107 old._ifOperStatus > 0
108 &&
109 this._valid
110 &&
111 old._valid) {
112 long tdiff = (this._sysUpTime - old._sysUpTime);
113 if (tdiff != 0) {
114 long inO = this._ifInOctets - old._ifInOctets;
115 long outO = this._ifOutOctets - old._ifOutOctets;
116
117 _speed = 100 * (inO + outO) / tdiff;
118 }
119 } else {
120 _speed = -1;
121 }
122 return _speed;
123 }
124
125 /**
126 * Returns how many interfaces are present.
127 *
128 * @return the number of interfaces
129 */
130 public static int getIfNumber(SnmpContextBasisFace con)
131 throws PduException, java.io.IOException {
132 int ifNumber = 0;
133
134 if (con != null) {
135 OneIntPdu ifNumberPdu = new OneIntPdu(con, ifNumber_OID + ".0");
136 boolean answered = ifNumberPdu.waitForSelf();
137 boolean timedOut = ifNumberPdu.isTimedOut();
138 if (timedOut == false) {
139 Integer intValue = ifNumberPdu.getValue();
140 if (intValue != null) {
141 ifNumber = intValue.intValue();
142 }
143 }
144 }
145 return ifNumber;
146 }
147
148 public String toString() {
149 StringBuffer buffer = new StringBuffer(getClass().getName());
150 buffer.append("[");
151 buffer.append(super.toString());
152 buffer.append(", speed=").append(_speed);
153 buffer.append("]");
154 return buffer.toString();
155 }
156
157 }