From b3a8eba5a17ab1d38846123fb4def8dedb187d21 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 14 Mar 2024 13:39:14 -0700 Subject: [PATCH] merge BatchedEventQueue into EventQueue (#43438) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43438 changelog: [internal] EventQueue can now be merged with BatchedEventQueue since there isn't anything else subclassing it. Reviewed By: javache Differential Revision: D54687859 fbshipit-source-id: f646583db0e46789b667f8d79d24d0cf9d7fc00c --- .../react/renderer/core/BatchedEventQueue.cpp | 20 ------------- .../react/renderer/core/BatchedEventQueue.h | 28 ------------------- .../react/renderer/core/EventDispatcher.cpp | 13 ++++----- .../react/renderer/core/EventDispatcher.h | 4 +-- .../react/renderer/core/EventQueue.cpp | 4 +++ .../react/renderer/core/EventQueue.h | 3 +- 6 files changed, 13 insertions(+), 59 deletions(-) delete mode 100644 packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.cpp delete mode 100644 packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.h diff --git a/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.cpp b/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.cpp deleted file mode 100644 index 0a9467eb5540b8..00000000000000 --- a/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#include "BatchedEventQueue.h" - -namespace facebook::react { - -BatchedEventQueue::BatchedEventQueue( - EventQueueProcessor eventProcessor, - std::unique_ptr eventBeat) - : EventQueue(std::move(eventProcessor), std::move(eventBeat)) {} - -void BatchedEventQueue::onEnqueue() const { - eventBeat_->request(); -} -} // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.h b/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.h deleted file mode 100644 index bc3e5a669d7eeb..00000000000000 --- a/packages/react-native/ReactCommon/react/renderer/core/BatchedEventQueue.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#pragma once - -#include -#include - -namespace facebook::react { - -/* - * Event Queue that dispatches event in batches synchronizing them with - * an Event Beat. - */ -class BatchedEventQueue final : public EventQueue { - public: - BatchedEventQueue( - EventQueueProcessor eventProcessor, - std::unique_ptr eventBeat); - - void onEnqueue() const override; -}; - -} // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.cpp b/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.cpp index 60fdd79c02a3fe..c6b98efd8201bd 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.cpp +++ b/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.cpp @@ -10,7 +10,7 @@ #include #include "EventLogger.h" -#include "BatchedEventQueue.h" +#include "EventQueue.h" #include "RawEvent.h" namespace facebook::react { @@ -20,9 +20,8 @@ EventDispatcher::EventDispatcher( const EventBeat::Factory& synchonousEventBeatFactory, const EventBeat::Factory& asynchronousEventBeatFactory, const EventBeat::SharedOwnerBox& ownerBox) - : asynchronousBatchedQueue_(std::make_unique( - eventProcessor, - asynchronousEventBeatFactory(ownerBox))) {} + : eventQueue_( + EventQueue(eventProcessor, asynchronousEventBeatFactory(ownerBox))) {} void EventDispatcher::dispatchEvent(RawEvent&& rawEvent) const { // Allows the event listener to interrupt default event dispatch @@ -34,11 +33,11 @@ void EventDispatcher::dispatchEvent(RawEvent&& rawEvent) const { if (eventLogger != nullptr) { rawEvent.loggingTag = eventLogger->onEventStart(rawEvent.type); } - asynchronousBatchedQueue_->enqueueEvent(std::move(rawEvent)); + eventQueue_.enqueueEvent(std::move(rawEvent)); } void EventDispatcher::dispatchStateUpdate(StateUpdate&& stateUpdate) const { - asynchronousBatchedQueue_->enqueueStateUpdate(std::move(stateUpdate)); + eventQueue_.enqueueStateUpdate(std::move(stateUpdate)); } void EventDispatcher::dispatchUniqueEvent(RawEvent&& rawEvent) const { @@ -46,7 +45,7 @@ void EventDispatcher::dispatchUniqueEvent(RawEvent&& rawEvent) const { if (eventListeners_.willDispatchEvent(rawEvent)) { return; } - asynchronousBatchedQueue_->enqueueUniqueEvent(std::move(rawEvent)); + eventQueue_.enqueueUniqueEvent(std::move(rawEvent)); } void EventDispatcher::addListener( diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.h b/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.h index e9c6ac39f6624e..3bc5fce8f69073 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.h +++ b/packages/react-native/ReactCommon/react/renderer/core/EventDispatcher.h @@ -7,9 +7,9 @@ #pragma once -#include #include #include +#include #include #include @@ -62,7 +62,7 @@ class EventDispatcher { const std::shared_ptr& listener) const; private: - std::unique_ptr asynchronousBatchedQueue_; + EventQueue eventQueue_; mutable EventListenerContainer eventListeners_; }; diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp index 099e529e48dd56..cef50c68380d69 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp +++ b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp @@ -75,6 +75,10 @@ void EventQueue::enqueueStateUpdate(StateUpdate&& stateUpdate) const { onEnqueue(); } +void EventQueue::onEnqueue() const { + eventBeat_->request(); +} + void EventQueue::onBeat(jsi::Runtime& runtime) const { flushStateUpdates(); flushEvents(runtime); diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.h b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.h index a4bd7b087e9e61..14e7c18d0b00ed 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.h +++ b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.h @@ -28,7 +28,6 @@ class EventQueue { EventQueue( EventQueueProcessor eventProcessor, std::unique_ptr eventBeat); - virtual ~EventQueue() = default; /* * Enqueues and (probably later) dispatch a given event. @@ -55,7 +54,7 @@ class EventQueue { * Override in subclasses to trigger beat `request` and/or beat `induce`. * Default implementation does nothing. */ - virtual void onEnqueue() const = 0; + void onEnqueue() const; void onBeat(jsi::Runtime& runtime) const; void flushEvents(jsi::Runtime& runtime) const;