mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-18 08:20:38 +08:00
Extract module registry creation to helper
Reviewed By: mhorowitz Differential Revision: D4721817 fbshipit-source-id: 2fa17ca5317a57d429aa75d6c1865932af27e02f
This commit is contained in:
committed by
Facebook Github Bot
parent
ea069b69de
commit
ce270220e4
40
React/CxxModule/DispatchMessageQueueThread.h
Normal file
40
React/CxxModule/DispatchMessageQueueThread.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <cxxreact/MessageQueueThread.h>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
// RCTNativeModule arranges for native methods to be invoked on a queue which
|
||||
// is not the JS thread. C++ modules don't use RCTNativeModule, so this little
|
||||
// adapter does the work.
|
||||
|
||||
class DispatchMessageQueueThread : public MessageQueueThread {
|
||||
public:
|
||||
DispatchMessageQueueThread(RCTModuleData *moduleData)
|
||||
: moduleData_(moduleData) {}
|
||||
|
||||
void runOnQueue(std::function<void()>&& func) override {
|
||||
dispatch_async(moduleData_.methodQueue, [func=std::move(func)] {
|
||||
func();
|
||||
});
|
||||
}
|
||||
void runOnQueueSync(std::function<void()>&& func) override {
|
||||
LOG(FATAL) << "Unsupported operation";
|
||||
}
|
||||
void quitSynchronous() override {
|
||||
LOG(FATAL) << "Unsupported operation";
|
||||
}
|
||||
|
||||
private:
|
||||
RCTModuleData *moduleData_;
|
||||
};
|
||||
|
||||
} }
|
||||
Reference in New Issue
Block a user