summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author junyulai <junyulai@google.com> 2022-04-13 16:04:19 +0800
committer Junyu Lai <junyulai@google.com> 2022-05-17 16:08:27 +0800
commit6ab8172b6938c48864f4e9beef6a313d785824fe (patch)
treeb05f65f04e74bd3cbe9e17e7fc5e157c9e0638b0
parent4cd19a7ece9888e2360c41d3ad960c7d942817bd (diff)
[MS82.2] Add a rewriteSingle method that takes two timestamps
This CL provides a public method in FileRotator to allow caller to write data to a specified standalone file. This CL also fix a file name generatign error in platform tools. Test: NetworkStatsServiceTest NetworkStatsCollectionTest Bug: 230289468 Change-Id: I17558f349cb2a33062972fe1af96a19356798692
-rw-r--r--core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java2
-rw-r--r--core/java/com/android/internal/util/FileRotator.java15
2 files changed, 16 insertions, 1 deletions
diff --git a/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java b/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java
index 5c9989e9d981..de2f10b86a77 100644
--- a/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java
+++ b/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java
@@ -161,7 +161,7 @@ public class NetworkStatsDataMigrationUtils {
@NonNull
private static ArrayList<File> getPlatformFileListForPrefix(@NonNull @Prefix String prefix) {
final ArrayList<File> list = new ArrayList<>();
- final File platformFiles = new File(getPlatformBaseDir(), "netstats");
+ final File platformFiles = getPlatformBaseDir();
if (platformFiles.exists()) {
for (String name : platformFiles.list()) {
// Skip when prefix doesn't match.
diff --git a/core/java/com/android/internal/util/FileRotator.java b/core/java/com/android/internal/util/FileRotator.java
index 4b3af1536175..5bc48c5172f0 100644
--- a/core/java/com/android/internal/util/FileRotator.java
+++ b/core/java/com/android/internal/util/FileRotator.java
@@ -16,6 +16,7 @@
package com.android.internal.util;
+import android.annotation.NonNull;
import android.os.FileUtils;
import android.util.Log;
@@ -282,6 +283,20 @@ public class FileRotator {
}
/**
+ * Process a single file atomically, with the given start and end timestamps.
+ * If a file with these exact start and end timestamps does not exist, a new
+ * empty file will be written.
+ */
+ public void rewriteSingle(@NonNull Rewriter rewriter, long startTimeMillis, long endTimeMillis)
+ throws IOException {
+ final FileInfo info = new FileInfo(mPrefix);
+
+ info.startMillis = startTimeMillis;
+ info.endMillis = endTimeMillis;
+ rewriteSingle(rewriter, info.build());
+ }
+
+ /**
* Read any rotated data that overlap the requested time range.
*/
public void readMatching(Reader reader, long matchStartMillis, long matchEndMillis)