< prev index next >

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/jdk/JdkAttributes.java

Print this page

        

*** 47,56 **** --- 47,57 ---- import static org.openjdk.jmc.common.unit.UnitLookup.THREAD; import static org.openjdk.jmc.common.unit.UnitLookup.TIMESPAN; import static org.openjdk.jmc.common.unit.UnitLookup.TIMESTAMP; import static org.openjdk.jmc.common.unit.UnitLookup.UNKNOWN; + import java.util.ArrayList; import java.util.List; import org.openjdk.jmc.common.IDisplayable; import org.openjdk.jmc.common.IMCClassLoader; import org.openjdk.jmc.common.IMCFrame;
*** 71,80 **** --- 72,82 ---- import org.openjdk.jmc.common.unit.IQuantity; import org.openjdk.jmc.common.unit.UnitLookup; import org.openjdk.jmc.common.util.FormatToolkit; import org.openjdk.jmc.common.util.LabeledIdentifier; import org.openjdk.jmc.common.util.MCClassLoader; + import org.openjdk.jmc.common.util.MemberAccessorToolkit; import org.openjdk.jmc.flightrecorder.JfrAttributes; import org.openjdk.jmc.flightrecorder.jdk.messages.internal.Messages; /** * Various attributes based on JDK flight recorder data.
*** 468,477 **** --- 470,499 ---- Messages.getString(Messages.ATTR_IO_SOCKET_READ_EOS), Messages.getString(Messages.ATTR_IO_SOCKET_READ_EOS_DESC), FLAG); public static final IAttribute<IQuantity> IO_SOCKET_BYTES_WRITTEN = attr("bytesWritten", //$NON-NLS-1$ Messages.getString(Messages.ATTR_IO_SOCKET_BYTES_WRITTEN), Messages.getString(Messages.ATTR_IO_SOCKET_BYTES_WRITTEN_DESC), MEMORY); + + public static final IAttribute<IQuantity> IO_SIZE = Attribute.canonicalize(new Attribute<IQuantity>("size", //#NON-NLS-1$ + "Size", null, MEMORY) { + @Override + public <U> IMemberAccessor<IQuantity, U> customAccessor(IType<U> type){ + List<IMemberAccessor<IQuantity, U>> accessorList = new ArrayList<>(); + + accessorList.add(type.getAccessor(JdkAttributes.IO_SOCKET_BYTES_READ.getKey())); + accessorList.add(type.getAccessor(JdkAttributes.IO_SOCKET_BYTES_WRITTEN.getKey())); + accessorList.add(type.getAccessor(JdkAttributes.IO_FILE_BYTES_READ.getKey())); + accessorList.add(type.getAccessor(JdkAttributes.IO_FILE_BYTES_WRITTEN.getKey())); + + for (IMemberAccessor<IQuantity, U> accessor : accessorList) { + if(accessor != null) { + return accessor; + } + } + return MemberAccessorToolkit.constant(UnitLookup.BYTE.quantity(0)); + } + }); public static final IAttribute<String> IO_ADDRESS = attr("address", Messages.getString(Messages.ATTR_IO_ADDRESS), //$NON-NLS-1$ PLAIN_TEXT); public static final IAttribute<String> IO_HOST = attr("host", Messages.getString(Messages.ATTR_IO_HOST), //$NON-NLS-1$ Messages.getString(Messages.ATTR_IO_HOST_DESC), PLAIN_TEXT); public static final IAttribute<IQuantity> IO_PORT = attr("port", Messages.getString(Messages.ATTR_IO_PORT), NUMBER); //$NON-NLS-1$
< prev index next >