package org.github.jamm; /** * Listener that receive notification form MemoryMeter. */ interface MemoryMeterListener { /** * A factory for <code>MemoryMeterListener</code>. */ interface Factory { MemoryMeterListener newInstance(); } /** * Notification that <code>MemoryMeter</code> as started analyzing the specified object. * * @param obj the object being analyzed */ void started(Object obj); /** * Notification that the field from the specified object has been added. * * @param obj the object for which a field has been added * @param fieldName the field name * @param fieldValue the field value */ void fieldAdded(Object obj, String fieldName, Object fieldValue); /** * Notification that the size of the specified object has been measured. * * @param current the object that has been measured * @param size the object size in bytes */ void objectMeasured(Object current, long size); /** * Notification that the specified object been counted. * * @param current the object that has been counted */ void objectCounted(Object current); /** * Notification that the entire graphs has been measured. * @param size the size of the entire graph. */ void done(long size); }