package org.libvirt;
import org.libvirt.jna.virNodeInfo;
import com.sun.jna.Native;
/**
* Node data from libvirt.
*/
public class NodeInfo {
/**
* string indicating the CPU model
*/
public String model;
/**
* memory size in kilobytes
*/
public long memory;
/**
* the number of active CPUs
*/
public int cpus;
/**
* expected CPU frequency
*/
public int mhz;
/**
* the number of NUMA cell, 1 for uniform
*/
public int nodes;
/**
* number of CPU socket per node
*/
public int sockets;
/**
* number of core per socket
*/
public int cores;
/**
* number of threads per core
*/
public int threads;
public NodeInfo() {
}
public NodeInfo(virNodeInfo vInfo) {
model = Native.toString(vInfo.model);
memory = vInfo.memory.longValue();
cpus = vInfo.cpus;
mhz = vInfo.mhz;
nodes = vInfo.nodes;
sockets = vInfo.sockets;
cores = vInfo.cores;
threads = vInfo.threads;
}
/**
* @return the total number of CPUs supported but not necessarily active in
* the host.
*/
public int maxCpus() {
return nodes * sockets * cores * threads;
}
@Override
public String toString() {
return String.format("model:%s%nmemory:%d%ncpus:%d%nmhz:%d%nnodes:%d%nsockets:%d%ncores:%d%nthreads:%d%n", model, memory, cpus, mhz, nodes, sockets, cores, threads);
}
}