package com.jamonapi;

/** The most basic of timing Monitors.  It is very close in performance to making straight calls to System.currentTimeMillis().
 *  This class is used primarily for comparison to the best case performance numbers for all of the other Monitors,
 *  however it may also be used to make timing measurements.
 *
 *  BasicTimingMonitors are not thread safe.  Monitors returned via MonitorFactory are.
 *
 * Sample call:
 *  BasicTimingMonitor mon=new BasicTimingMonitor();
 *  mon.start();
 *  ...code being monitored...
 *  mon.stop();
 **/

final public class BasicTimingMonitor {
    // Note. this class does not implement the Monitor interface and is not used in the
    // rest of the monitor framework. However it can be used if performance comparable
    // to simple times to currentTimeMillis() are required.
    private long startTime;
    
    public void start() {
        startTime=System.currentTimeMillis();
    }
    
    public long stop() {
        return System.currentTimeMillis()-startTime;
    }
}

