bump the version
[dmaap/messagerouter/msgrtr.git] / src / main / java / com / att / dmf / mr / metrics / publisher / impl / Clock.java
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  org.onap.dmaap
4  *  ================================================================================
5  *  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *        http://www.apache.org/licenses/LICENSE-2.0
11 *  
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *  ============LICENSE_END=========================================================
18  *  
19  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
20  *  
21  *******************************************************************************/
22 package com.att.dmf.mr.metrics.publisher.impl;
23
24 /**
25  * 
26  * This class maintains the system clocks
27  * @author nilanjana.maity
28  *
29  */
30 public class Clock
31 {
32         public synchronized static Clock getIt ()
33         {
34                 if ( sfClock == null )
35                 {
36                         sfClock = new Clock ();
37                 }
38                 return sfClock;
39         }
40
41         /**
42          * 
43          * Get the system's current time in milliseconds.
44          * @return the current time
45          * 
46          */
47         public static long now ()
48         {
49                 return getIt().nowImpl ();
50         }
51
52         /**
53          * Get current time in milliseconds
54          * @return current time in ms
55          */
56         public long nowImpl ()
57         {
58                 return System.currentTimeMillis ();
59         }
60
61         /**
62          * Initialize constructor
63          */
64         public Clock ()
65         {
66         }
67
68         private static Clock sfClock = null;
69
70         public synchronized static void register ( Clock testClock )
71         {
72                 sfClock = testClock;
73         }
74 }