summaryrefslogtreecommitdiffstats
path: root/core/java/android/net/NetworkPolicy.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-06-18 18:34:16 -0700
committerJeff Sharkey <jsharkey@android.com>2011-06-18 22:23:11 -0700
commit1b5a2a96f793211bfbd39aa29cc41031dfa23950 (patch)
tree1922879069937ed56dbea9ec0b217a1e5b045941 /core/java/android/net/NetworkPolicy.java
parent1a81a16a967173729839d3802a5527ff074f9af9 (diff)
downloadframeworks_base-1b5a2a96f793211bfbd39aa29cc41031dfa23950.zip
frameworks_base-1b5a2a96f793211bfbd39aa29cc41031dfa23950.tar.gz
frameworks_base-1b5a2a96f793211bfbd39aa29cc41031dfa23950.tar.bz2
Read "qtaguid" network stats, refactor templates.
Teach NMS to read qtaguid stats from kernel, but fall back to older stats when kernel doesn't support. Add "tags" to NetworkStats entries to support qtaguid. To work around double-reporting bug, subtract tagged stats from TAG_NONE entry. Flesh out stronger NetworkTemplate. All NetworkStatsService requests now require a template, and moved matching logic into template. Record UID stats keyed on complete NetworkIdentitySet definition, similar to how interface stats are stored. Since previous UID stats didn't have iface breakdown, discard during file format upgrade. Change-Id: I0447b5e7d205d73d28e71c889c568e536e91b8e4
Diffstat (limited to 'core/java/android/net/NetworkPolicy.java')
-rw-r--r--core/java/android/net/NetworkPolicy.java32
1 files changed, 16 insertions, 16 deletions
diff --git a/core/java/android/net/NetworkPolicy.java b/core/java/android/net/NetworkPolicy.java
index 1899281..52cab30 100644
--- a/core/java/android/net/NetworkPolicy.java
+++ b/core/java/android/net/NetworkPolicy.java
@@ -16,37 +16,38 @@
package android.net;
+import static com.android.internal.util.Preconditions.checkNotNull;
+
import android.os.Parcel;
import android.os.Parcelable;
/**
- * Policy for a specific network, including usage cycle and limits to be
- * enforced.
+ * Policy for networks matching a {@link NetworkTemplate}, including usage cycle
+ * and limits to be enforced.
*
* @hide
*/
public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> {
- public final int networkTemplate;
- public final String subscriberId;
+ public static final long WARNING_DISABLED = -1;
+ public static final long LIMIT_DISABLED = -1;
+
+ public final NetworkTemplate template;
public int cycleDay;
public long warningBytes;
public long limitBytes;
- public static final long WARNING_DISABLED = -1;
- public static final long LIMIT_DISABLED = -1;
+ // TODO: teach how to snooze limit for current cycle
- public NetworkPolicy(int networkTemplate, String subscriberId, int cycleDay, long warningBytes,
- long limitBytes) {
- this.networkTemplate = networkTemplate;
- this.subscriberId = subscriberId;
+ public NetworkPolicy(
+ NetworkTemplate template, int cycleDay, long warningBytes, long limitBytes) {
+ this.template = checkNotNull(template, "missing NetworkTemplate");
this.cycleDay = cycleDay;
this.warningBytes = warningBytes;
this.limitBytes = limitBytes;
}
public NetworkPolicy(Parcel in) {
- networkTemplate = in.readInt();
- subscriberId = in.readString();
+ template = in.readParcelable(null);
cycleDay = in.readInt();
warningBytes = in.readLong();
limitBytes = in.readLong();
@@ -54,8 +55,7 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> {
/** {@inheritDoc} */
public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(networkTemplate);
- dest.writeString(subscriberId);
+ dest.writeParcelable(template, flags);
dest.writeInt(cycleDay);
dest.writeLong(warningBytes);
dest.writeLong(limitBytes);
@@ -81,8 +81,8 @@ public class NetworkPolicy implements Parcelable, Comparable<NetworkPolicy> {
@Override
public String toString() {
- return "NetworkPolicy: networkTemplate=" + networkTemplate + ", cycleDay=" + cycleDay
- + ", warningBytes=" + warningBytes + ", limitBytes=" + limitBytes;
+ return "NetworkPolicy[" + template + "]: cycleDay=" + cycleDay + ", warningBytes="
+ + warningBytes + ", limitBytes=" + limitBytes;
}
public static final Creator<NetworkPolicy> CREATOR = new Creator<NetworkPolicy>() {