summaryrefslogtreecommitdiffstats
path: root/core/java/android/util/TrustedTime.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-04-25 23:44:11 -0700
committerJeff Sharkey <jsharkey@android.com>2011-04-28 12:28:36 -0700
commitb7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c (patch)
tree40e6e8fe8708c087640f8a26bffdf20eac8e779e /core/java/android/util/TrustedTime.java
parentcb95894bc7ed2f5f4fc541be62631e5456f442d3 (diff)
downloadframeworks_base-b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c.zip
frameworks_base-b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c.tar.gz
frameworks_base-b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c.tar.bz2
Tests for ThrottleService, NTP into TrustedTime.
Wrote initial suite of tests for ThrottleService, checking a variety of edge cases. Checks going over limits, updating policies, and reset after cycle elapses. Moved NTP code in ThrottleService into new TrustedTime interface, which makes it easier to understand, and allows tests to provide custom clocks. Change-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8
Diffstat (limited to 'core/java/android/util/TrustedTime.java')
-rw-r--r--core/java/android/util/TrustedTime.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/core/java/android/util/TrustedTime.java b/core/java/android/util/TrustedTime.java
new file mode 100644
index 0000000..263d782
--- /dev/null
+++ b/core/java/android/util/TrustedTime.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.util;
+
+/**
+ * Interface that provides trusted time information, possibly coming from an NTP
+ * server. Implementations may cache answers until {@link #forceRefresh()}.
+ *
+ * @hide
+ */
+public interface TrustedTime {
+ /**
+ * Force update with an external trusted time source, returning {@code true}
+ * when successful.
+ */
+ public boolean forceRefresh();
+
+ /**
+ * Check if this instance has cached a response from a trusted time source.
+ */
+ public boolean hasCache();
+
+ /**
+ * Return time since last trusted time source contact, or
+ * {@link Long#MAX_VALUE} if never contacted.
+ */
+ public long getCacheAge();
+
+ /**
+ * Return certainty of cached trusted time in milliseconds, or
+ * {@link Long#MAX_VALUE} if never contacted. Smaller values are more
+ * precise.
+ */
+ public long getCacheCertainty();
+
+ /**
+ * Return current time similar to {@link System#currentTimeMillis()},
+ * possibly using a cached authoritative time source.
+ */
+ public long currentTimeMillis();
+}