am 4c48d2ff: Merge "Make operation counts monotonically increase." into ics-mr1

* commit '4c48d2ff6937e1e3a2fb93cc4cc29324b20542a5':
  Make operation counts monotonically increase.
This commit is contained in:
Jeff Sharkey
2011-11-09 14:36:56 +00:00
committed by Android Git Automerger
3 changed files with 28 additions and 2 deletions

View File

@ -165,6 +165,17 @@ public class NetworkStats implements Parcelable {
dest.writeLongArray(operations);
}
@Override
public NetworkStats clone() {
final NetworkStats clone = new NetworkStats(elapsedRealtime, size);
NetworkStats.Entry entry = null;
for (int i = 0; i < size; i++) {
entry = getValues(i, entry);
clone.addValues(entry);
}
return clone;
}
// @VisibleForTesting
public NetworkStats addIfaceValues(
String iface, long rxBytes, long rxPackets, long txBytes, long txPackets) {

View File

@ -294,6 +294,22 @@ public class NetworkStatsTest extends TestCase {
assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L);
}
public void testClone() throws Exception {
final NetworkStats original = new NetworkStats(TEST_START, 5)
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L)
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L);
// make clone and mutate original
final NetworkStats clone = original.clone();
original.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L);
assertEquals(3, original.size());
assertEquals(2, clone.size());
assertEquals(128L + 512L + 128L, original.getTotalBytes());
assertEquals(128L + 512L, clone.getTotalBytes());
}
private static void assertValues(NetworkStats stats, int index, String iface, int uid, int set,
int tag, long rxBytes, long rxPackets, long txBytes, long txPackets, long operations) {
final NetworkStats.Entry entry = stats.getValues(index, null);

View File

@ -971,8 +971,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
}
mLastPollUidSnapshot = uidSnapshot;
mLastPollOperationsSnapshot = mOperations;
mOperations = new NetworkStats(0L, 10);
mLastPollOperationsSnapshot = mOperations.clone();
}
/**