1
2
3
4
5 package oshi.driver.unix.aix.perfstat;
6
7 import com.sun.jna.platform.unix.aix.Perfstat;
8 import com.sun.jna.platform.unix.aix.Perfstat.perfstat_id_t;
9 import com.sun.jna.platform.unix.aix.Perfstat.perfstat_protocol_t;
10
11 import oshi.annotation.concurrent.ThreadSafe;
12
13
14
15
16 @ThreadSafe
17 public final class PerfstatProtocol {
18
19 private static final Perfstat PERF = Perfstat.INSTANCE;
20
21 private PerfstatProtocol() {
22 }
23
24
25
26
27
28
29 public static perfstat_protocol_t[] queryProtocols() {
30 perfstat_protocol_t protocol = new perfstat_protocol_t();
31
32 int total = PERF.perfstat_protocol(null, null, protocol.size(), 0);
33 if (total > 0) {
34 perfstat_protocol_t[] statp = (perfstat_protocol_t[]) protocol.toArray(total);
35 perfstat_id_t firstprotocol = new perfstat_id_t();
36 int ret = PERF.perfstat_protocol(firstprotocol, statp, protocol.size(), total);
37 if (ret > 0) {
38 return statp;
39 }
40 }
41 return new perfstat_protocol_t[0];
42 }
43 }