/**@class android.net.NetworkStats implements android.os.Parcelable @extends java.lang.Object Collection of active network statistics. Can contain summary details across all interfaces, or details with per-UID granularity. Internally stores data as a large table, closely matching {@code /proc/} data format. This structure optimizes for rapid in-memory comparison, but consider using {@link android.net.NetworkStatsHistory} when persisting. @hide */ var NetworkStats = { /**{@link #iface} value when interface details unavailable. */ IFACE_ALL : "null", /**{@link #uid} value when UID details unavailable. */ UID_ALL : "-1", /**{@link #tag} value matching any tag. */ TAG_ALL : "-1", /**{@link #set} value when all sets combined, not including debug sets. */ SET_ALL : "-1", /**{@link #set} value where background data is accounted. */ SET_DEFAULT : "0", /**{@link #set} value where foreground data is accounted. */ SET_FOREGROUND : "1", /**All {@link #set} value greater than SET_DEBUG_START are debug {@link #set} values. */ SET_DEBUG_START : "1000", /**Debug {@link #set} value when the VPN stats are moved in. */ SET_DBG_VPN_IN : "1001", /**Debug {@link #set} value when the VPN stats are moved out of a vpn UID. */ SET_DBG_VPN_OUT : "1002", /**{@link #tag} value for total data across all tags. */ TAG_NONE : "0", /***/ CREATOR : "null", /** */ writeToParcel : function( ) {}, /** */ clone : function( ) {}, /** */ addIfaceValues : function( ) {}, /** */ addValues : function( ) {}, /**Add new stats entry, copying from given {@link android.net.NetworkStats.Entry}. The {@link android.net.NetworkStats.Entry} object can be recycled across multiple calls. */ addValues : function( ) {}, /**Return specific stats entry. */ getValues : function( ) {}, /** */ getElapsedRealtime : function( ) {}, /** */ setElapsedRealtime : function( ) {}, /**Return age of this {@link android.net.NetworkStats} object with respect to {@link SystemClock#elapsedRealtime()}. */ getElapsedRealtimeAge : function( ) {}, /** */ size : function( ) {}, /** */ internalSize : function( ) {}, /** */ combineValues : function( ) {}, /** */ combineValues : function( ) {}, /**Combine given values with an existing row, or create a new row if {@link #findIndex(String, int, int, int)} is unable to find match. Can also be used to subtract values from existing rows. */ combineValues : function( ) {}, /**Combine all values from another {@link android.net.NetworkStats} into this object. */ combineAllValues : function( ) {}, /**Find first stats index that matches the requested parameters. */ findIndex : function( ) {}, /**Find first stats index that matches the requested parameters, starting search around the hinted index as an optimization. */ findIndexHinted : function( ) {}, /**Splice in {@link #operations} from the given {@link android.net.NetworkStats} based on matching {@link #uid} and {@link #tag} rows. Ignores {@link #iface}, since operation counts are at data layer. */ spliceOperationsFrom : function( ) {}, /**Return list of unique interfaces known by this data structure. */ getUniqueIfaces : function( ) {}, /**Return list of unique UIDs known by this data structure. */ getUniqueUids : function( ) {}, /**Return total bytes represented by this snapshot object, usually used when checking if a {@link #subtract}(NetworkStats) delta passes a threshold. */ getTotalBytes : function( ) {}, /**Return total of all fields represented by this snapshot object. */ getTotal : function( ) {}, /**Return total of all fields represented by this snapshot object matching the requested {@link #uid}. */ getTotal : function( ) {}, /**Return total of all fields represented by this snapshot object matching the requested {@link #iface}. */ getTotal : function( ) {}, /** */ getTotalIncludingTags : function( ) {}, /**Fast path for battery stats. */ getTotalPackets : function( ) {}, /**Subtract the given {@link android.net.NetworkStats}, effectively leaving the delta between two snapshots in time. Assumes that statistics rows collect over time, and that none of them have disappeared. */ subtract : function( ) {}, /**Subtract the two given {@link android.net.NetworkStats} objects, returning the delta between two snapshots in time. Assumes that statistics rows collect over time, and that none of them have disappeared. <p> If counters have rolled backwards, they are clamped to {@code 0} and reported to the given {@link android.net.NetworkStats.NonMonotonicObserver}. */ subtract : function( ) {}, /**Subtract the two given {@link android.net.NetworkStats} objects, returning the delta between two snapshots in time. Assumes that statistics rows collect over time, and that none of them have disappeared. <p> If counters have rolled backwards, they are clamped to {@code 0} and reported to the given {@link android.net.NetworkStats.NonMonotonicObserver}. <p> If <var>recycle</var> is supplied, this NetworkStats object will be reused (and returned) as the result if it is large enough to contain the data. */ subtract : function( ) {}, /**Return total statistics grouped by {@link #iface}; doesn't mutate the original structure. */ groupedByIface : function( ) {}, /**Return total statistics grouped by {@link #uid}; doesn't mutate the original structure. */ groupedByUid : function( ) {}, /**Return all rows except those attributed to the requested UID; doesn't mutate the original structure. */ withoutUids : function( ) {}, /** */ dump : function( ) {}, /**Return text description of {@link #set} value. */ setToString : function( ) {}, /**Return text description of {@link #set} value. */ setToCheckinString : function( ) {}, /** @return {Boolean} true if the querySet matches the dataSet. */ setMatches : function( ) {}, /**Return text description of {@link #tag} value. */ tagToString : function( ) {}, /** */ toString : function( ) {}, /** */ describeContents : function( ) {}, /**VPN accounting. Move some VPN's underlying traffic to other UIDs that use tun0 iface. This method should only be called on delta NetworkStats. Do not call this method on a snapshot {@link android.net.NetworkStats} object because the tunUid and/or the underlyingIface may change over time. This method performs adjustments for one active VPN package and one VPN iface at a time. It is possible for the VPN software to use multiple underlying networks. This method only migrates traffic for the primary underlying network. @param {Number} tunUid uid of the VPN application @param {String} tunIface iface of the vpn tunnel @param {String} underlyingIface the primary underlying network iface used by the VPN application @return {Boolean} true if it successfully adjusts the accounting for VPN, false otherwise */ migrateTun : function( ) {}, };