Android Open Source - callmeter Sys Class Net






From Project

Back to project page callmeter.

License

The source code is released under:

GNU General Public License

If you think the Android project callmeter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2009-2013 Cyril Jaquier, Felix Bechstein
 * /*from ww  w  .j av  a  2  s  .com*/
 * This file is part of NetCounter.
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program; If not, see <http://www.gnu.org/licenses/>.
 */

package de.ub0r.android.callmeter.data;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

import de.ub0r.android.logg0r.Log;

/**
 * Acces /sys/class/net/ files.
 */
public final class SysClassNet {

    /** Tag for output. */
    private static final String TAG = "SysClassNet";

    /** Prefix of all interfaces. */
    public static final String SYS_CLASS_NET = "/sys/class/net/";
    /** type postfix. */
    public static final String TYPE = "/type";
    /** carrier postfix. */
    public static final String CARRIER = "/carrier";
    /** Postfix: received bytes. */
    public static final String RX_BYTES = "/statistics/rx_bytes";
    /** Postfix: sent bytes. */
    public static final String TX_BYTES = "/statistics/tx_bytes";

    /**
     * Private constructor. This is an utility class.
     */
    private SysClassNet() {
    }

    /**
     * @param inter interface
     * @return bytes received
     * @throws IOException IOException
     */
    public static long getRxBytes(final String inter) throws IOException {
        return readLong(inter, RX_BYTES);
    }

    /**
     * @param inter interface
     * @return bytes sent
     * @throws IOException IOException
     */
    public static long getTxBytes(final String inter) throws IOException {
        return readLong(inter, TX_BYTES);
    }

    /**
     * @param filename filename
     * @return RandomAccessFile
     * @throws IOException IOException
     */
    private static RandomAccessFile getFile(final String filename) throws IOException {
        File f = new File(filename);
        return new RandomAccessFile(f, "r");
    }

    /**
     * @param inter interface
     * @param file  file (rx or tx)
     * @return bytes received or sent
     */
    private static long readLong(final String inter, final String file) {
        Log.d(TAG, "readLong(", inter, ",", file, ")");
        StringBuilder sb = new StringBuilder();
        sb.append(SYS_CLASS_NET).append(inter).append(file);
        RandomAccessFile raf = null;
        try {
            raf = getFile(sb.toString());
            String l = raf.readLine();
            Log.d(TAG, "readLong(): ", l);
            return Long.valueOf(l);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage() + " / error reading long for inter: " + inter);
            return 0;
        } finally {
            if (raf != null) {
                try {
                    raf.close();
                } catch (IOException e) {
                    Log.e(TAG, null, e);
                }
            }
        }
    }
}




Java Source Code List

android.preference.DatePreference.java
com.actionbarsherlock.BuildConfig.java
de.ub0r.android.callmeter.Ads.java
de.ub0r.android.callmeter.CallMeter.java
de.ub0r.android.callmeter.TrackingUtils.java
de.ub0r.android.callmeter.data.DataProvider.java
de.ub0r.android.callmeter.data.Device.java
de.ub0r.android.callmeter.data.ExportProvider.java
de.ub0r.android.callmeter.data.LogRunnerReceiver.java
de.ub0r.android.callmeter.data.LogRunnerService.java
de.ub0r.android.callmeter.data.NameCache.java
de.ub0r.android.callmeter.data.NameLoader.java
de.ub0r.android.callmeter.data.RuleMatcher.java
de.ub0r.android.callmeter.data.SysClassNet.java
de.ub0r.android.callmeter.ui.AboutActivity.java
de.ub0r.android.callmeter.ui.AddLogActivity.java
de.ub0r.android.callmeter.ui.AskForPlan.java
de.ub0r.android.callmeter.ui.Common.java
de.ub0r.android.callmeter.ui.HelpActivity.java
de.ub0r.android.callmeter.ui.IntroActivity.java
de.ub0r.android.callmeter.ui.LogsFragment.java
de.ub0r.android.callmeter.ui.PlansFragment.java
de.ub0r.android.callmeter.ui.Plans.java
de.ub0r.android.callmeter.ui.TrackingActivity.java
de.ub0r.android.callmeter.ui.TrackingSherlockActivity.java
de.ub0r.android.callmeter.ui.TrackingSherlockFragmentActivity.java
de.ub0r.android.callmeter.ui.TrackingSherlockPreferenceActivity.java
de.ub0r.android.callmeter.ui.prefs.BillModeListPreference.java
de.ub0r.android.callmeter.ui.prefs.CV2EditTextPreference.java
de.ub0r.android.callmeter.ui.prefs.CVBillModePreference.java
de.ub0r.android.callmeter.ui.prefs.CVCheckBoxPreference.java
de.ub0r.android.callmeter.ui.prefs.CVDatePreference.java
de.ub0r.android.callmeter.ui.prefs.CVEditTextPreference.java
de.ub0r.android.callmeter.ui.prefs.CVListPreference.java
de.ub0r.android.callmeter.ui.prefs.HourGroupEdit.java
de.ub0r.android.callmeter.ui.prefs.HourGroups.java
de.ub0r.android.callmeter.ui.prefs.NumberGroupEdit.java
de.ub0r.android.callmeter.ui.prefs.NumberGroups.java
de.ub0r.android.callmeter.ui.prefs.PlanEdit.java
de.ub0r.android.callmeter.ui.prefs.Plans.java
de.ub0r.android.callmeter.ui.prefs.PreferencesImport.java
de.ub0r.android.callmeter.ui.prefs.PreferencesPlain.java
de.ub0r.android.callmeter.ui.prefs.PreferencesRules.java
de.ub0r.android.callmeter.ui.prefs.Preferences.java
de.ub0r.android.callmeter.ui.prefs.RuleEdit.java
de.ub0r.android.callmeter.ui.prefs.Rules.java
de.ub0r.android.callmeter.ui.prefs.SimplePreferencesChild.java
de.ub0r.android.callmeter.ui.prefs.SimplePreferences.java
de.ub0r.android.callmeter.ui.prefs.UpDownPreference.java
de.ub0r.android.callmeter.ui.prefs.UpdateListener.java
de.ub0r.android.callmeter.widget.LogsAppWidgetConfigure.java
de.ub0r.android.callmeter.widget.LogsAppWidgetProvider.java
de.ub0r.android.callmeter.widget.StatsAppWidgetConfigure.java
de.ub0r.android.callmeter.widget.StatsAppWidgetProvider.java
yuku.ambilwarna.AmbilWarnaDialog.java
yuku.ambilwarna.AmbilWarnaKotak.java