43 lines
949 B
Java
43 lines
949 B
Java
package org.atriasoft.echrono;
|
|
|
|
/**
|
|
* @brief Clock is a compleate virtual clock that is used to virtualize the urrent clock used (can be non real-time, ex:for simulation)
|
|
*/
|
|
public class Clock {
|
|
public static Time now() {
|
|
return new Time(System.nanoTime());
|
|
}
|
|
|
|
private final long data; //!< virtual clock
|
|
|
|
public Clock() {
|
|
this.data = 0;
|
|
}
|
|
|
|
public Clock(final double _val) { //value in second
|
|
this.data = (long) (_val * 1000000000.0);
|
|
}
|
|
|
|
public Clock(final int _val) { //value in nanosecond
|
|
this.data = _val;
|
|
}
|
|
|
|
public Clock(final long _val) { //value in nanosecond
|
|
this.data = _val;
|
|
}
|
|
|
|
public Clock(final long _valSec, final long _valNano) { //value in second and nanosecond
|
|
this.data = _valSec * 1000000000L + _valNano;
|
|
}
|
|
|
|
public long get() {
|
|
return this.data;
|
|
}
|
|
|
|
public Duration less(final Clock timeUpAppl) {
|
|
// TODO Auto-generated method stub
|
|
return new Duration(this.data - timeUpAppl.data);
|
|
}
|
|
|
|
}
|