Android Open Source - Volley-Ball Ball Marker Log






From Project

Back to project page Volley-Ball.

License

The source code is released under:

MIT License

If you think the Android project Volley-Ball 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

package com.siu.android.volleyball;
/*  w  ww . j  av a2 s  .c  o  m*/
import android.os.SystemClock;

import com.android.volley.VolleyLog;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lukas on 8/29/13.
 */
public class BallMarkerLog {
    public static final boolean ENABLED = VolleyLog.DEBUG;

    /** Minimum duration from first marker to last in an marker log to warrant logging. */
    private static final long MIN_DURATION_FOR_LOGGING_MS = 0;

    private static class Marker {
        public final String name;
        public final long thread;
        public final long time;

        public Marker(String name, long thread, long time) {
            this.name = name;
            this.thread = thread;
            this.time = time;
        }
    }

    private final List<Marker> mMarkers = new ArrayList<Marker>();
    private boolean mFinished = false;

    /** Adds a marker to this log with the specified name. */
    public synchronized void add(String name, long threadId) {
        if (mFinished) {
            throw new IllegalStateException("Marker added to finished log");
        }

        mMarkers.add(new Marker(name, threadId, SystemClock.elapsedRealtime()));
    }

    /**
     * Closes the log, dumping it to logcat if the time difference between
     * the first and last markers is greater than {@link #MIN_DURATION_FOR_LOGGING_MS}.
     * @param header Header string to print above the marker log.
     */
    public synchronized void finish(String header) {
        mFinished = true;

        long duration = getTotalDuration();
        if (duration <= MIN_DURATION_FOR_LOGGING_MS) {
            return;
        }

        long prevTime = mMarkers.get(0).time;
        VolleyLog.d("(%-4d ms) %s", duration, header);
        for (Marker marker : mMarkers) {
            long thisTime = marker.time;
            VolleyLog.d("(+%-4d) [%2d] %s", (thisTime - prevTime), marker.thread, marker.name);
            prevTime = thisTime;
        }
    }

    @Override
    protected void finalize() throws Throwable {
        // Catch requests that have been collected (and hence end-of-lifed)
        // but had no debugging output printed for them.
        if (!mFinished) {
            finish("Request on the loose");
            VolleyLog.e("Marker log finalized without finish() - uncaught exit point for request");
        }
    }

    /** Returns the time difference between the first and last events in this log. */
    private long getTotalDuration() {
        if (mMarkers.size() == 0) {
            return 0;
        }

        long first = mMarkers.get(0).time;
        long last = mMarkers.get(mMarkers.size() - 1).time;
        return last - first;
    }
}




Java Source Code List

.BallExecutorDelivery.java
.LocalRequest.java
com.android.volley.CompatRequest.java
com.siu.android.volleyball.BallCacheDispatcher.java
com.siu.android.volleyball.BallMarkerLog.java
com.siu.android.volleyball.BallNetworkDispatcher.java
com.siu.android.volleyball.BallRequestQueue.java
com.siu.android.volleyball.BallRequest.java
com.siu.android.volleyball.BallResponseDelivery.java
com.siu.android.volleyball.BallResponse.java
com.siu.android.volleyball.ball.BallExecutorDelivery.java
com.siu.android.volleyball.exception.BallException.java
com.siu.android.volleyball.local.LocalDispatcher.java
com.siu.android.volleyball.local.LocalRequestProcessor.java
com.siu.android.volleyball.mock.FileMockNetwork.java
com.siu.android.volleyball.network.NetworkRequestProcessor.java
com.siu.android.volleyball.request.CompleteRequest.java
com.siu.android.volleyball.request.LocalRequest.java
com.siu.android.volleyball.request.NetworkRequest.java
com.siu.android.volleyball.response.ResponseListener.java
com.siu.android.volleyball.response.SingleResponseListener.java
com.siu.android.volleyball.samples.Application.java
com.siu.android.volleyball.samples.Constants.java
com.siu.android.volleyball.samples.activity.CompleteRequestActivity.java
com.siu.android.volleyball.samples.activity.LocalRequestActivity.java
com.siu.android.volleyball.samples.activity.NetworkRequestActivity.java
com.siu.android.volleyball.samples.activity.ScenariosActivity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario10Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario1Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario2Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario3Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario4Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario5Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario6Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario7Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario8Activity.java
com.siu.android.volleyball.samples.activity.scenarios.Scenario9Activity.java
com.siu.android.volleyball.samples.activity.scenarios.ScenarioActivity.java
com.siu.android.volleyball.samples.adapter.BindableAdapter.java
com.siu.android.volleyball.samples.adapter.EntriesAdapter.java
com.siu.android.volleyball.samples.adapter.LogsAdapter.java
com.siu.android.volleyball.samples.database.DatabaseHelper.java
com.siu.android.volleyball.samples.database.EntryDao.java
com.siu.android.volleyball.samples.database.mapping.EntryMapping.java
com.siu.android.volleyball.samples.fragment.LocalOnlyRequestFragment.java
com.siu.android.volleyball.samples.model.Entry.java
com.siu.android.volleyball.samples.model.Log.java
com.siu.android.volleyball.samples.util.ScenarioUtils.java
com.siu.android.volleyball.samples.util.SimpleLogger.java
com.siu.android.volleyball.samples.volley.OkHttpStack.java
com.siu.android.volleyball.samples.volley.ScenarioListener.java
com.siu.android.volleyball.samples.volley.fake.FakeCache.java
com.siu.android.volleyball.samples.volley.fake.FakeNetwork.java
com.siu.android.volleyball.samples.volley.request.CompleteEntryRequest.java
com.siu.android.volleyball.samples.volley.request.SampleErrorNetworkRequest.java
com.siu.android.volleyball.samples.volley.request.SampleLocalNoResultRequest.java
com.siu.android.volleyball.samples.volley.request.SampleLocalRequest.java
com.siu.android.volleyball.samples.volley.request.SampleNetworkRequest.java
com.siu.android.volleyball.samples.volley.request.SampleRequest.java
com.siu.android.volleyball.samples.volley.request.ScenarioRequest.java
com.siu.android.volleyball.toolbox.BallImageLoader.java
com.siu.android.volleyball.toolbox.BallImageRequest.java
com.siu.android.volleyball.toolbox.BallNetworkImageView.java
com.siu.android.volleyball.toolbox.BallRequestFuture.java
com.siu.android.volleyball.toolbox.VolleyBallConfig.java
com.siu.android.volleyball.toolbox.VolleyBall.java
com.siu.android.volleyball.util.BallLogger.java
com.siu.android.volleyball.util.ConfigUtils.java
com.siu.android.volleyball.util.RequestUtils.java