| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef NET_ANDROID_TRAFFIC_STATS_H_ |
| #define NET_ANDROID_TRAFFIC_STATS_H_ |
| |
| // This file provides functions that interact with TrafficStats APIs that are |
| // provided on Android. |
| |
| #include <jni.h> |
| #include <stdint.h> |
| |
| #include "net/base/net_export.h" |
| |
| namespace net { |
| |
| namespace android { |
| |
| namespace traffic_stats { |
| |
| // Returns true if the number of bytes transmitted since device boot is |
| // available and sets |*bytes| to that value. Counts packets across all network |
| // interfaces, and always increases monotonically since device boot. |
| // Statistics are measured at the network layer, so they include both TCP and |
| // UDP usage. |bytes| must not be nullptr. |
| NET_EXPORT bool GetTotalTxBytes(int64_t* bytes); |
| |
| // Returns true if the number of bytes received since device boot is |
| // available and sets |*bytes| to that value. Counts packets across all network |
| // interfaces, and always increases monotonically since device boot. |
| // Statistics are measured at the network layer, so they include both TCP and |
| // UDP usage. |bytes| must not be nullptr. |
| NET_EXPORT bool GetTotalRxBytes(int64_t* bytes); |
| |
| // Returns true if the number of bytes attributed to caller's UID since device |
| // boot are available and sets |*bytes| to that value. Counts packets across |
| // all network interfaces, and always increases monotonically since device |
| // boot. Statistics are measured at the network layer, so they include both TCP |
| // and UDP usage. |bytes| must not be nullptr. |
| NET_EXPORT bool GetCurrentUidTxBytes(int64_t* bytes); |
| |
| // Returns true if the number of bytes attributed to caller's UID since device |
| // boot are available and sets |*bytes| to that value. Counts packets across |
| // all network interfaces, and always increases monotonically since device |
| // boot. Statistics are measured at the network layer, so they include both TCP |
| // and UDP usage. |bytes| must not be nullptr. |
| NET_EXPORT bool GetCurrentUidRxBytes(int64_t* bytes); |
| |
| bool Register(JNIEnv* env); |
| |
| } // namespace traffic_stats |
| |
| } // namespace android |
| |
| } // namespace net |
| |
| #endif // NET_ANDROID_TRAFFIC_STATS_H_ |