1 /*
2 * This file is part of Waarp Project (named also Waarp or GG).
3 *
4 * Copyright (c) 2019, Waarp SAS, 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 Waarp 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 * Waarp 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 * Waarp . If not, see <http://www.gnu.org/licenses/>.
19 */
20 package org.waarp.common.cpu;
21
22 import java.lang.management.ManagementFactory;
23 import java.lang.management.OperatingSystemMXBean;
24
25 /**
26 *
27 */
28 class CpuManagement implements CpuManagementInterface {
29 OperatingSystemMXBean osBean;
30
31 /**
32 * @throws UnsupportedOperationException if System Load Average is
33 * not
34 * supported
35 */
36 public CpuManagement() throws UnsupportedOperationException {
37 osBean = ManagementFactory.getOperatingSystemMXBean();
38 if (osBean.getSystemLoadAverage() < 0) {
39 osBean = null;
40 throw new UnsupportedOperationException(
41 "System Load Average not supported");
42 }
43 }
44
45 /**
46 * @return the load average
47 */
48 @Override
49 public double getLoadAverage() {
50 return osBean.getSystemLoadAverage();
51 }
52 }