diff options
| author | 2019-12-18 06:16:22 +0000 | |
|---|---|---|
| committer | 2019-12-18 06:16:22 +0000 | |
| commit | 8e9583502a1344b1f8e8dc3ea1beb2337de9145b (patch) | |
| tree | 03828bfb195aaf3d173addb0f194e37a7471c3d6 | |
| parent | d66b29507d1f728c4db9d8f4d416d0ba3d80a061 (diff) | |
| parent | 8a74765bf7a8b2b3dbe240469c06d55eee7212f2 (diff) | |
Merge "Adding proto for QuotaTracker dumps."
| -rw-r--r-- | core/proto/android/util/quotatracker.proto | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/core/proto/android/util/quotatracker.proto b/core/proto/android/util/quotatracker.proto new file mode 100644 index 000000000000..0dea853b0986 --- /dev/null +++ b/core/proto/android/util/quotatracker.proto @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2019 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. + */ + +syntax = "proto2"; + +package android.util.quota; + +option java_multiple_files = true; + +import "frameworks/base/core/proto/android/privacy.proto"; + +// A com.android.util.quota.QuotaTracker object. +message QuotaTrackerProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional bool is_enabled = 1; + + // If quota is free for everything in the tracker. + optional bool is_global_quota_free = 2; + + // Current elapsed realtime. + optional int64 elapsed_realtime = 3; + + message AlarmListener { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // Whether the listener is waiting for an alarm or not. + optional bool is_waiting = 1; + // The time at which the alarm should go off, in the elapsed realtime timebase. Only + // valid if is_waiting is true. + optional int64 trigger_time_elapsed = 2; + } + + // Next tag: 4 +} + +// A com.android.util.quota.Category object. +message CategoryProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // Name of the category set by the system service. + optional string name = 1; +} + +// A com.android.util.quota.Uptc object. +message UptcProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // UserHandle value. Should be 0, 10, 11, 12, etc. where 0 is the owner. + optional int32 user_id = 1; + // Package name + optional string name = 2; + // Tag set by the system service to differentiate calls. + optional string tag = 3; +} + +// A com.android.util.quota.CountQuotaTracker object. +message CountQuotaTrackerProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional QuotaTrackerProto base_quota_data = 1; + + message CountLimit { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional CategoryProto category = 1; + optional int32 limit = 2; + optional int64 window_size_ms = 3; + } + repeated CountLimit count_limit = 2; + + message Event { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // The time the event occurred, in the elapsed realtime timebase. + optional int64 timestamp_elapsed = 1; + } + + message ExecutionStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // The time after which this record should be considered invalid (out of date), in the + // elapsed realtime timebase. + optional int64 expiration_time_elapsed = 1; + + optional int64 window_size_ms = 2; + optional int32 count_limit = 3; + + // The total number of events that occurred in the window. + optional int32 count_in_window = 4; + + // The time after which the app will be under the bucket quota. This is only valid if + // count_in_window >= count_limit. + optional int64 in_quota_time_elapsed = 5; + } + + message UptcStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional UptcProto uptc = 1; + + // True if the UPTC has been given free quota. + optional bool is_quota_free = 2; + + repeated Event events = 3; + + repeated ExecutionStats execution_stats = 4; + + optional QuotaTrackerProto.AlarmListener in_quota_alarm_listener = 5; + } + repeated UptcStats uptc_stats = 3; + + // Next tag: 4 +} + +// A com.android.util.quota.DurationQuotaTracker object. +message DurationQuotaTrackerProto { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional QuotaTrackerProto base_quota_data = 1; + + message DurationLimit { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional CategoryProto category = 1; + optional int64 limit_ms = 2; + optional int64 window_size_ms = 3; + } + repeated DurationLimit duration_limit = 2; + + message ExecutionStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // The time after which this record should be considered invalid (out of date), in the + // elapsed realtime timebase. + optional int64 expiration_time_elapsed = 1; + + optional int32 window_size_ms = 2; + optional int64 duration_limit_ms = 3; + + // The overall session duration in the window. + optional int64 session_duration_in_window_ms = 4; + // The number of individual long-running events in the window. + optional int32 event_count_in_window = 5; + + // The time after which the app will be under the bucket quota. This is only valid if + // session_duration_in_window_ms >= duration_limit_ms. + optional int64 in_quota_time_elapsed = 6; + } + + message Timer { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + // True if the Timer is actively tracking long-running events. + optional bool is_active = 1; + // The time this timer last became active. Only valid if is_active is true. + optional int64 start_time_elapsed = 2; + // How many long-running events are currently running. Valid only if is_active is true. + optional int32 event_count = 3; + } + + message TimingSession { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int64 start_time_elapsed = 1; + optional int64 end_time_elapsed = 2; + // How many events started during this session. This only count long-running events, not + // instantaneous events. + optional int32 event_count = 3; + } + + message UptcStats { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional UptcProto uptc = 1; + + // True if the UPTC has been given free quota. + optional bool is_quota_free = 2; + + optional Timer timer = 3; + + repeated TimingSession saved_sessions = 4; + + repeated ExecutionStats execution_stats = 5; + + optional QuotaTrackerProto.AlarmListener in_quota_alarm_listener = 6; + } + repeated UptcStats uptc_stats = 3; + + message ReachedQuotaAlarmListener { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional int64 trigger_time_elapsed = 1; + + message UptcTimes { + option (.android.msg_privacy).dest = DEST_AUTOMATIC; + + optional UptcProto uptc = 1; + optional int64 out_of_quota_time_elapsed = 2; + } + repeated UptcTimes uptc_times = 2; + } + optional ReachedQuotaAlarmListener reached_quota_alarm_listener = 4; + + // Next tag: 5 +} |