blob: d8820f38caee56f83dcfdf4e0133067a3c32ee88 [file] [log] [blame]
/*
* Copyright 2016 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.cpman;
/**
* System information interface.
*/
public interface SystemInfo {
/**
* Returns number of CPU cores.
*
* @return number of CPU cores
*/
int coreCount();
/**
* Returns number of CPUs.
*
* @return number of CPUs
*/
int cpuCount();
/**
* Returns CPU speed in MHz.
*
* @return CPU speed
*/
int cpuSpeed();
/**
* Returns the total amount of memory in Mega Bytes.
*
* @return memory size
*/
int totalMemory();
/**
* A builder of SystemInfo.
*/
interface Builder {
/**
* Sets number of CPU cores.
*
* @param numOfCores number of CPU cores
* @return Builder object
*/
Builder numOfCores(int numOfCores);
/**
* Sets number of CPUs.
* @param numOfCpus number of CPUs
* @return Builder object
*/
Builder numOfCpus(int numOfCpus);
/**
* Sets CPU speed.
*
* @param cpuSpeedMhz CPU speed in Mhz
* @return Builder object
*/
Builder cpuSpeed(int cpuSpeedMhz);
/**
* Sets total amount of memory.
*
* @param totalMemoryMbytes memory size in Mega Bytes
* @return Builder object
*/
Builder totalMemory(int totalMemoryMbytes);
/**
* Builds a SystemInfo object.
*
* @return SystemInfo object
*/
SystemInfo build();
}
}