mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: `SynchronousEventBeat` and `AsynchronousEventBeat` are a cross-platform re-implementation of run loop related parts of `MainRunLoopEventBeat` and `RuntimeEventBeat` (iOS specific classes for now). In the future, they will replace iOS- and Android-specifc event beat classes. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D21341996 fbshipit-source-id: 8eda9a5df537cd666b7728e32212a8bb5ddb3ab7
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#include <ReactCommon/RuntimeExecutor.h>
|
|
#include <react/core/EventBeat.h>
|
|
#include <react/utils/RunLoopObserver.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* Event beat associated with JavaScript runtime.
|
|
* The beat is called on `RuntimeExecutor`'s thread induced by the UI thread
|
|
* event loop.
|
|
*/
|
|
class AsynchronousEventBeat : public EventBeat,
|
|
public RunLoopObserver::Delegate {
|
|
public:
|
|
AsynchronousEventBeat(
|
|
RunLoopObserver::Unique uiRunLoopObserver,
|
|
RuntimeExecutor runtimeExecutor);
|
|
|
|
void induce() const override;
|
|
|
|
#pragma mark - RunLoopObserver::Delegate
|
|
|
|
void activityDidChange(
|
|
RunLoopObserver::Delegate const *delegate,
|
|
RunLoopObserver::Activity activity) const noexcept override;
|
|
|
|
private:
|
|
RunLoopObserver::Unique uiRunLoopObserver_;
|
|
RuntimeExecutor runtimeExecutor_;
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|