52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
|
/*
|
||
|
* 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.
|
||
|
*/
|
||
|
|
||
|
#import "RCTCxxInspectorPackagerConnectionDelegate.h"
|
||
|
|
||
|
#if RCT_DEV || RCT_REMOTE_PROFILE
|
||
|
|
||
|
#import <dispatch/dispatch.h>
|
||
|
|
||
|
namespace facebook::react::jsinspector_modern {
|
||
|
RCTCxxInspectorPackagerConnectionDelegate::WebSocket::WebSocket(RCTCxxInspectorWebSocketAdapter *adapter)
|
||
|
: _adapter(adapter)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void RCTCxxInspectorPackagerConnectionDelegate::WebSocket::send(std::string_view message)
|
||
|
{
|
||
|
[_adapter send:message];
|
||
|
}
|
||
|
|
||
|
RCTCxxInspectorPackagerConnectionDelegate::WebSocket::~WebSocket()
|
||
|
{
|
||
|
[_adapter close];
|
||
|
}
|
||
|
|
||
|
std::unique_ptr<IWebSocket> RCTCxxInspectorPackagerConnectionDelegate::connectWebSocket(
|
||
|
const std::string &url,
|
||
|
std::weak_ptr<IWebSocketDelegate> delegate)
|
||
|
{
|
||
|
auto *adapter = [[RCTCxxInspectorWebSocketAdapter alloc] initWithURL:url delegate:delegate];
|
||
|
if (!adapter) {
|
||
|
return nullptr;
|
||
|
}
|
||
|
return std::make_unique<WebSocket>(adapter);
|
||
|
}
|
||
|
|
||
|
void RCTCxxInspectorPackagerConnectionDelegate::scheduleCallback(
|
||
|
std::function<void(void)> callback,
|
||
|
std::chrono::milliseconds delayMs)
|
||
|
{
|
||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delayMs.count() * NSEC_PER_MSEC), dispatch_get_main_queue(), ^{
|
||
|
callback();
|
||
|
});
|
||
|
}
|
||
|
} // namespace facebook::react::jsinspector_modern
|
||
|
|
||
|
#endif
|