1 /*
2 * Licensed under the Apache License, Version 2.0 (the "License");
3 * you may not use this file except in compliance with the License.
4 * You may obtain a copy of the License at
5 *
6 * http://www.apache.org/licenses/LICENSE-2.0
7 *
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS,
10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 * See the License for the specific language governing permissions and
12 * limitations under the License.
13 */
14
15 package net.sourceforge.basher.internal;
16
17 /**
18 * Defines time based operations. Allows operations for determining run-time since initialization.
19 *
20 * @author Johan Lindquist
21 * @version 1.0
22 */
23 public interface TimeSource
24 {
25 /**
26 * Returns the elapsed time of the running system. Measured in milliseconds.
27 *
28 * @return The elapsed time since start-up.
29 */
30 public long getElapsedTime();
31
32 /**
33 * Returns the time the system was started. Measured in milliseconds since Midnight 1st January 1970.
34 *
35 * @return The start time.
36 */
37 public long getStartTime();
38
39 /**
40 * Returns the current time in the system. Measured in milliseconds since Midnight 1st January 1970.
41 *
42 * @return The current time.
43 */
44 public long getCurrentTime();
45
46 /**
47 * Resets the internal time.
48 */
49 public void reset();
50
51 /** Produces the current nanontime. See {@link java.lang.System#nanoTime()} for more information
52 *
53 * @return
54 */
55 public long getNanoTime();
56
57 }