KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jorphan > timer > HRTimer


1 // $Header: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/timer/HRTimer.java,v 1.4 2004/02/11 23:57:23 sebb Exp $
2
/*
3  * Copyright 2002-2004 The Apache Software Foundation.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17 */

18
19 package org.apache.jorphan.timer;
20
21 /**
22  * A package-private implementation of {@link ITimer} based around native
23  * <code>getTime</code> method. It will work on any platform for which a JNI
24  * implementation of "hrtlib" library is available.<P>
25  *
26  * {@link TimerFactory} acts as the Factory for this class.<P>
27  *
28  * MT-safety: an instance of this class is safe to be used within the same
29  * thread only.
30  *
31  * @author <a HREF="mailto:vroubtsov@illinoisalumni.org">Vlad Roubtsov</a>
32  * @author Originally published in <a HREF="http://www.javaworld.com/javaworld/javaqa/2003-01/01-qa-0110-timing.html">JavaWorld</a>
33  * @version $Revision: 1.4 $
34  */

35 final class HRTimer extends AbstractTimer
36 {
37     private static final String JavaDoc HRTIMER_LIB = "hrtlib";
38     
39     static
40     {
41         try
42         {
43             System.loadLibrary (HRTIMER_LIB);
44         }
45         catch (UnsatisfiedLinkError JavaDoc e)
46         {
47             System.out.println ("native lib '" + HRTIMER_LIB
48                 + "' not found in 'java.library.path': "
49                 + System.getProperty ("java.library.path"));
50             
51             throw e; // re-throw
52
}
53     }
54
55     /*
56      * This is supposed to return a fractional count of milliseconds elapsed
57      * since some indeterminate moment in the past. The exact starting point
58      * is not relevant because this timer class reports time differences only.
59      *
60      * JNI code in HRTIMER_LIB library is supposed to implement this.
61      */

62     private static native double getTime ();
63
64     protected double getCurrentTime()
65     {
66         return getTime();
67     }
68 }
69
Popular Tags