diff options
author | Jeff Sharkey <jsharkey@android.com> | 2011-06-18 18:34:16 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2011-06-18 22:23:11 -0700 |
commit | 1b5a2a96f793211bfbd39aa29cc41031dfa23950 (patch) | |
tree | 1922879069937ed56dbea9ec0b217a1e5b045941 /core/java/android/net/NetworkPolicy.java | |
parent | 1a81a16a967173729839d3802a5527ff074f9af9 (diff) | |
download | frameworks_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.java | 32 |
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>() { |