On 29 Apr 2013, at 17:34, Pedro Ruivo wrote:
Hi,
The TimeService interface is going to replace all the System.nanoTime()
and System.currentTimeMillis() in the code and it will allow to replace
in the test suite in order to provide a better control over the time
dependent code (if needed).
The objective of this email is to discuss possible implementation and
interface that will cover the needs of everybody (or at least try it).
Later I'll create a JIRA and start the implementation (except if someone
really wants to implement it :P)
* Interface:
//return the current time in nanoseconds and milliseconds respectively
long nowNanos()
long nowMillis()
What about time() and wallClockTime() with overloaded methods
time(TimeUnit) and wallClockTime(TimeUnit)?
//return the duration between now() and the startNanos/Millis
long durationNanos(long startNanos)
long durationMillis(long startMillis)
+1
//return the duration between start+ and end+
long durationNanos(long startNanos, long endNanos)
besides return (endNanos -
startNanos) does it do some sanity checks? if it's only for the difference i think the
subtraction is simpler
long durationMillis(long startMillis, long endMillis)
Any other method? Maybe adding a TimeUnit parameter instead of duplicate
methods (e.g. now(TimeUnit))?
both :-)
Maybe some convert() with double
precision, since the TimeUnit.convert(...) usually loses precision?
only when
moving from finer to coarser granularity, but that's to be expected.
(I need double precision for the Extended Statistics, but I can put this
converters in my classes)
* Scope:
Should the TimeService be in a cache or global scope? My vote is per
cache...
+1
* Configuration
Should we provide a configuration to pass an implementation of the
TimeService interface? if yes, we may need to change the methods above
to return some interface (e.g. TimeStamp) in order to support almost
anything.
I liked your idea to inject it in the ComponentRegistry. Perhaps a
ComponentRegistry.setTimeService method?
Any other subject? Thoughts?
If I was not clear let me know...
Cheers,
Pedro Ruivo
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev
Cheers,
--
Mircea Markus
Infinispan lead (
www.infinispan.org)