// Copyright 2013 Thomas Müller // This file is part of MarMoT, which is licensed under GPLv3. package marmot.util; import java.security.InvalidParameterException; public class Timer { private long total_time_; private long current_start_time_; private State state_; private enum State {Running, Stopped}; public Timer() { reset(); } public void start() { current_start_time_ = System.currentTimeMillis(); state_ = State.Running; } public void stop() { if (state_.equals(State.Stopped)) throw new InvalidParameterException(); total_time_ += System.currentTimeMillis() - current_start_time_; } public long getTime() { long time = total_time_; if (state_.equals(State.Running)) { time += System.currentTimeMillis() - current_start_time_; } return time; } public long getTimeInSeconds() { return getTime() / 1000; } public void reset() { total_time_ = 0; current_start_time_ = -1; state_ = State.Stopped; } }