aboutsummaryrefslogtreecommitdiffstats
path: root/jdisc_core
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2018-06-21 13:41:42 +0200
committerHåkon Hallingstad <hakon@oath.com>2018-06-21 13:41:42 +0200
commitbf4d047056ead5b91a8eb8c185a107e1c48aa5ad (patch)
treeac7232761679c250532894ea5940ce7378e87e2a /jdisc_core
parent5258489bf992e8176e136362759ac079494b6f94 (diff)
Move TimeBudget to vespajlib and use Clock
Diffstat (limited to 'jdisc_core')
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/TimeBudget.java55
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/TimeBudgetTestCase.java29
2 files changed, 0 insertions, 84 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/TimeBudget.java b/jdisc_core/src/main/java/com/yahoo/jdisc/TimeBudget.java
deleted file mode 100644
index 39322b6e83a..00000000000
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/TimeBudget.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc;
-
-import javax.annotation.concurrent.Immutable;
-import java.time.Duration;
-import java.time.Instant;
-
-/**
- * A TimeBudget tracks the current time compared to a start time and deadline.
- *
- * @author hakon
- */
-@Immutable
-public class TimeBudget {
- private final Timer timer;
- private final Instant start;
- private final Duration timeout;
-
- /** Returns a TimeBudget with a start time of now, and with the given timeout. */
- public static TimeBudget fromNow(Timer timer, Duration timeout) {
- return new TimeBudget(timer, timer.currentTime(), timeout);
- }
-
- private TimeBudget(Timer timer, Instant start, Duration timeout) {
- this.timer = timer;
- this.start = start;
- this.timeout = timeout;
- }
-
- /** Time until 'headroom' before deadline. Guaranteed to be non-negative. */
- public Duration timeBeforeDeadline(Duration headroom) {
- return nonNegativeBetween(now(), deadline().minus(headroom));
- }
-
- /** Returns the original timeout. */
- public Duration originalTimeout() {
- return timeout;
- }
-
- private static Duration nonNegativeBetween(Instant start, Instant end) {
- return makeNonNegative(Duration.between(start, end));
- }
-
- private static Duration makeNonNegative(Duration duration) {
- return duration.isNegative() ? Duration.ZERO : duration;
- }
-
- private Instant now() {
- return timer.currentTime();
- }
-
- private Instant deadline() {
- return start.plus(timeout);
- }
-}
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/TimeBudgetTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/TimeBudgetTestCase.java
deleted file mode 100644
index 5afc205beb3..00000000000
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/TimeBudgetTestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.jdisc;
-
-import org.junit.Test;
-
-import java.time.Duration;
-import java.time.Instant;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public class TimeBudgetTestCase {
- private final Timer timer = mock(Timer.class);
-
- @Test
- public void testBasics() {
- when(timer.currentTime()).thenReturn(Instant.ofEpochSecond(0));
- TimeBudget timeBudget = TimeBudget.fromNow(timer, Duration.ofSeconds(10));
-
- when(timer.currentTime()).thenReturn(Instant.ofEpochSecond(7));
- assertEquals(Duration.ofSeconds(3), timeBudget.timeBeforeDeadline(Duration.ofSeconds(0)));
- assertEquals(Duration.ofSeconds(1), timeBudget.timeBeforeDeadline(Duration.ofSeconds(2)));
- assertEquals(Duration.ofSeconds(0), timeBudget.timeBeforeDeadline(Duration.ofSeconds(5)));
-
- when(timer.currentTime()).thenReturn(Instant.ofEpochSecond(11));
- assertEquals(Duration.ofSeconds(0), timeBudget.timeBeforeDeadline(Duration.ofSeconds(0)));
- }
-} \ No newline at end of file