19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
275279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1775279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeypackage android.net;
1875279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey
19b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkeyimport android.net.INetworkStatsSession;
20d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.net.NetworkStats;
2175279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeyimport android.net.NetworkStatsHistory;
221b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkeyimport android.net.NetworkTemplate;
2375279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey
2475279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey/** {@hide} */
2575279904202357565cf5a1cb11148d01f42b4569Jeff Sharkeyinterface INetworkStatsService {
2675279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey
27b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey    /** Start a statistics query session. */
28b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey    INetworkStatsSession openSession();
29d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey
30b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey    /** Return network layer usage total for traffic that matches template. */
31b52e3e55098c4a6e3dbfe19885895411cfb38911Jeff Sharkey    long getNetworkTotalBytes(in NetworkTemplate template, long start, long end);
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey    /** Return data layer snapshot of UID network usage. */
34a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey    NetworkStats getDataLayerSnapshotForUid(int uid);
35234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey    /** Return set of any ifaces associated with mobile networks since boot. */
36234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey    String[] getMobileIfaces();
37234766a36af6214644fa8205202287084ca9cf93Jeff Sharkey
38a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey    /** Increment data layer count of operations performed for UID and tag. */
39a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey    void incrementOperationCount(int uid, int tag, int operationCount);
40a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey
41b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey    /** Mark given UID as being in foreground for stats purposes. */
42b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey    void setUidForeground(int uid, boolean uidForeground);
43350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey    /** Force update of statistics. */
44350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey    void forceUpdate();
45ac3fcb1590e1da21324c13ce237ec48f2bf488bfJeff Sharkey    /** Advise persistance threshold; may be overridden internally. */
46ac3fcb1590e1da21324c13ce237ec48f2bf488bfJeff Sharkey    void advisePersistThreshold(long thresholdBytes);
47350083e36b9db6062e165954403ef921ff3dfdadJeff Sharkey
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49