/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" /** * Simple stopwatch mechanism for determining the amount of wall-clock time and * CPU time (user + system) that has elapsed. It is not fancy. It is either * running or it is not. If you want coherent cpu and real time values, then * you had better stop it first. It does not keep counting when stopped, * although one could add a resumeRetroactive or something to accomplish that. */ [scriptable, uuid(7a671d6e-d48f-4a4f-b87e-644815a5e381)] interface nsIStopwatch : nsISupports { /** * Start the stopwatch; all counters are reset to zero. If you want to * keep the already accumulated values, use resume instead. */ void start(); /** * Stop the stopwatch. */ void stop(); /** * Resume the stopwatch without clearing the existing counters. Any time * already accumulated on cpuTime/realTime will be kept. */ void resume(); /** * The total CPU time (user + system) in seconds accumulated between calls to * start/resume and stop. You have to stop the stopwatch to cause this value * to update. */ readonly attribute double cpuTimeSeconds; /** * The total wall clock time in seconds accumulated between calls to * start/resume and stop. You have to stop the stopwatch to cause this value * to update. */ readonly attribute double realTimeSeconds; };