1 /**
2 * This file is part of GoldenGate Project (named also GoldenGate or GG).
3 *
4 * Copyright 2009, Frederic Bregier, and individual contributors by the @author
5 * tags. See the COPYRIGHT.txt in the distribution for a full listing of
6 * individual contributors.
7 *
8 * All GoldenGate Project is free software: you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version.
12 *
13 * GoldenGate is distributed in the hope that it will be useful, but WITHOUT ANY
14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * GoldenGate . If not, see <http://www.gnu.org/licenses/>.
19 */
20 package goldengate.snmp.interf;
21
22 import org.snmp4j.smi.Counter32;
23
24 /**
25 * Generic Counter32 with update possibility for GoldenGate
26 *
27 * @author Frederic Bregier
28 *
29 */
30 @SuppressWarnings("serial")
31 public abstract class GgCounter32 extends Counter32 {
32 /**
33 * Function to set the data before it is accessed by SNMP4J. This function
34 * MUST call setValue(long)
35 */
36 protected abstract void setInternalValue();
37
38 /**
39 * Function to set the data before it is accessed by SNMP4J. This function
40 * MUST call setValue(long)
41 */
42 protected abstract void setInternalValue(long value);
43
44 public GgCounter32() {
45 setInternalValue();
46 }
47
48 public GgCounter32(long value) {
49 setInternalValue(value);
50 }
51
52 /*
53 * (non-Javadoc)
54 *
55 * @see org.snmp4j.smi.UnsignedInteger32#getValue()
56 */
57 @Override
58 public long getValue() {
59 setInternalValue();
60 return super.getValue();
61 }
62
63 /*
64 * (non-Javadoc)
65 *
66 * @see org.snmp4j.smi.Gauge32#clone()
67 */
68 @Override
69 public Object clone() {
70 setInternalValue();
71 return super.clone();
72 }
73
74 /*
75 * (non-Javadoc)
76 *
77 * @see org.snmp4j.smi.AbstractVariable#isDynamic()
78 */
79 @Override
80 public boolean isDynamic() {
81 return true;
82 }
83
84 }