/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.bridge;
/**
* Interface for receiving notification for bridge idle/busy events. Should not affect application
* logic and should only be used for debug/monitoring/testing purposes. Call
* {@link CatalystInstance#addBridgeIdleDebugListener} to start monitoring.
*
* NB: onTransitionToBridgeIdle and onTransitionToBridgeBusy may be called from different threads,
* and those threads may not be the same thread on which the listener was originally registered.
*/
public interface NotThreadSafeBridgeIdleDebugListener {
/**
* Called once all pending JS calls have resolved via an onBatchComplete call in the bridge and
* the requested native module calls have also run. The bridge will not become busy again until
* a timer, touch event, etc. causes a Java->JS call to be enqueued again.
*/
void onTransitionToBridgeIdle();
/**
* Called when the bridge was in an idle state and executes a JS call or callback.
*/
void onTransitionToBridgeBusy();
}