Files
flipper/iOS/FlipperKit/CppBridge/FlipperCppBridgingConnection.mm
Andres Suarez 79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00

64 lines
1.8 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 "FlipperCppBridgingConnection.h"
#import <FBCxxFollyDynamicConvert/FBCxxFollyDynamicConvert.h>
#import "FlipperCppBridgingResponder.h"
@implementation FlipperCppBridgingConnection {
std::shared_ptr<facebook::flipper::FlipperConnection> conn_;
}
- (instancetype)initWithCppConnection:
(std::shared_ptr<facebook::flipper::FlipperConnection>)conn {
if (self = [super init]) {
conn_ = conn;
}
return self;
}
#pragma mark - SonarConnection
- (void)sendInternal:(NSString*)method withParams:(id)params {
conn_->send(
[method UTF8String],
facebook::cxxutils::convertIdToFollyDynamic(params, true));
}
- (void)send:(NSString*)method withParams:(NSDictionary*)params {
[self sendInternal:method withParams:params];
}
- (void)send:(NSString*)method withArrayParams:(NSArray*)params {
[self sendInternal:method withParams:params];
}
- (void)receive:(NSString*)method withBlock:(SonarReceiver)receiver {
const auto lambda =
[receiver](
const folly::dynamic& message,
std::shared_ptr<facebook::flipper::FlipperResponder> responder) {
@autoreleasepool {
FlipperCppBridgingResponder* const objCResponder =
[[FlipperCppBridgingResponder alloc]
initWithCppResponder:responder];
receiver(
facebook::cxxutils::convertFollyDynamicToId(message),
objCResponder);
}
};
conn_->receive([method UTF8String], lambda);
}
- (void)errorWithMessage:(NSString*)message stackTrace:(NSString*)stacktrace {
conn_->error([message UTF8String], [stacktrace UTF8String]);
}
@end