1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.snmp.utils;
21
22 import org.waarp.snmp.interf.WaarpGauge32;
23
24
25
26
27 public class MemoryGauge32 extends WaarpGauge32 {
28
29
30
31 private static final long serialVersionUID = -435321381525820545L;
32
33
34
35
36 public enum MemoryType {
37 TotalMemory, FreeMemory, UsedMemory
38 }
39
40
41
42
43 private transient final Runtime runtime = Runtime.getRuntime();
44
45
46
47 protected final MemoryType type;
48
49 @Override
50 protected final void setInternalValue() {
51 if (type == null) {
52 return;
53 }
54 final long mem;
55 switch (type) {
56 case TotalMemory:
57 mem = runtime.totalMemory();
58 setValue(mem >> 10);
59 return;
60 case FreeMemory:
61 mem = runtime.freeMemory();
62 setValue(mem >> 10);
63 return;
64 case UsedMemory:
65 mem = runtime.totalMemory() - runtime.freeMemory();
66 setValue(mem >> 10);
67 }
68 }
69
70 @Override
71 protected final void setInternalValue(final long value) {
72
73 setInternalValue();
74 }
75
76
77
78
79 public MemoryGauge32(final MemoryType type) {
80 this.type = type;
81 setInternalValue();
82 }
83 }