001package jmri;
002
003/**
004 * Interface for calculating an average meter value for a meter.
005 *
006 * @author Daniel Bergqvist Copyright (C) 2025
007 */
008public interface AverageMeter extends Meter {
009
010    /**
011     * Get the meter.
012     * @return the meter
013     */
014    Meter getMeter();
015
016    /**
017     * Set the meter.
018     * @param meter the meter
019     */
020    void setMeter(Meter meter);
021
022    /**
023     * Get the time in milliseconds to average on.
024     * @return the time
025     */
026    int getTime();
027
028    /**
029     * Set the time in milliseconds to average on.
030     * @param time the time
031     */
032    void setTime(int time);
033
034    /**
035     * Remove references to and from this object, so that it can eventually be
036     * garbage-collected.
037     * <p>
038     * The meter must be disabled before it's disposed.
039     */
040    @Override
041    void dispose();
042
043}