1e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey/* 2e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * Copyright (C) 2018 The Android Open Source Project 3e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * 4e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * you may not use this file except in compliance with the License. 6e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * You may obtain a copy of the License at 7e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * 8e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * 10e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * See the License for the specific language governing permissions and 14e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey * limitations under the License. 15e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey */ 16e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 17e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkeypackage com.android.server.net; 18e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 19e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkeyimport android.net.NetworkStats; 20e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkeyimport android.net.NetworkTemplate; 21e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 22e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkeypublic abstract class NetworkStatsManagerInternal { 23e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey /** Return network layer usage total for traffic that matches template. */ 24e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey public abstract long getNetworkTotalBytes(NetworkTemplate template, long start, long end); 25e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 26e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey /** Return network layer usage per-UID for traffic that matches template. */ 27e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey public abstract NetworkStats getNetworkUidBytes(NetworkTemplate template, long start, long end); 28e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 29e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey /** Mark given UID as being in foreground for stats purposes. */ 30e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey public abstract void setUidForeground(int uid, boolean uidForeground); 31e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 32e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey /** Advise persistance threshold; may be overridden internally. */ 33e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey public abstract void advisePersistThreshold(long thresholdBytes); 34e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey 35e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey /** Force update of statistics. */ 36e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey public abstract void forceUpdate(); 37e0c2995d0f16246336d4385d5ebe631a60e12e86Jeff Sharkey} 38