X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2FState.java;h=278032e17e91040cd7ee6ed9cf6f6cbae922e201;hb=13a4fe6bece23b3dd561de657cf9bb7ea307e2b6;hp=9e2face1ad71ceb340f4a22a3b45f41b79ffe6fe;hpb=2b8aecff333e65cc5b44d01bbc31a16ca12280b2;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/State.java b/src/main/java/net/pterodactylus/reactor/State.java index 9e2face..278032e 100644 --- a/src/main/java/net/pterodactylus/reactor/State.java +++ b/src/main/java/net/pterodactylus/reactor/State.java @@ -25,6 +25,14 @@ package net.pterodactylus.reactor; public interface State { /** + * Returns the time when this state was retrieved. + * + * @return The time when this state was retrieved (in millseconds since Jan + * 1, 1970 UTC) + */ + long time(); + + /** * Whether the state was successfully retrieved. This method should only * return {@code true} if a meaningful result could be retrieved; if e. g. a * service is currently not reachable, this method should return false @@ -36,6 +44,25 @@ public interface State { boolean success(); /** + * Returns the number of consecutive failures. This method only returns a + * meaningful number iff {@link #success()} returns {@code false}. If + * {@link #success()} returns {@code false} for the first time after + * returning {@code true} and this method is called after {@link #success()} + * it will return {@code 1}. + * + * @return The number of consecutive failures + */ + int failCount(); + + /** + * Sets the fail count of this state. + * + * @param failCount + * The fail count of this state + */ + void setFailCount(int failCount); + + /** * If {@link #success()} returns {@code false}, this method may return a * {@link Throwable} to give some details for the reason why retrieving the * state was not possible. For example, network-based {@link Query}s might