throw new RuntimeException("Could not find network adapter info [" + context.getResourceKey() + "]");
}
public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> metrics) {
NetworkAdapterInfo info = getInfo();
NetworkAdapterStats stats = this.context.getSystemInformation().getNetworkAdapterStats(info.getName());
for (MeasurementScheduleRequest request : metrics) {
String property = request.getName();
if (property.startsWith("Trait.net4.address")) // TODO
{ // this trait is supported regardless of having native support or not
List<InetAddress> addrs = info.getUnicastAddresses();
String ifAddrs = (addrs.size() > 0) ? addrs.get(0).getHostAddress() : "";
for (int i = 1; i < addrs.size(); i++) {
ifAddrs += "," + addrs.get(i).getHostAddress();
}
report.addData(new MeasurementDataTrait(request, ifAddrs));
} else if (property.equals("Trait.interfaceFlags")) {
report.addData(new MeasurementDataTrait(request, info.getAllFlags()));
} else {
Number number = ((Number) ObjectUtil.lookupAttributeProperty(stats, request.getName()));
if (number != null) {
report.addData(new MeasurementDataNumeric(request, number.doubleValue()));
}