1// Copyright 2013 The Flutter Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.h" 6 7#include "flutter/fml/logging.h" 8 9@implementation FlutterBinaryMessengerRelay 10#pragma mark - FlutterBinaryMessenger 11 12- (instancetype)initWithParent:(NSObject<FlutterBinaryMessenger>*)parent { 13 self = [super init]; 14 if (self != nil) { 15 self.parent = parent; 16 } 17 return self; 18} 19 20- (void)sendOnChannel:(NSString*)channel message:(NSData*)message { 21 if (self.parent) { 22 [self.parent sendOnChannel:channel message:message binaryReply:nil]; 23 } else { 24 FML_LOG(WARNING) << "Communicating on a dead channel."; 25 } 26} 27 28- (void)sendOnChannel:(NSString*)channel 29 message:(NSData*)message 30 binaryReply:(FlutterBinaryReply)callback { 31 if (self.parent) { 32 [self.parent sendOnChannel:channel message:message binaryReply:callback]; 33 } else { 34 FML_LOG(WARNING) << "Communicating on a dead channel."; 35 } 36} 37 38- (void)setMessageHandlerOnChannel:(NSString*)channel 39 binaryMessageHandler:(FlutterBinaryMessageHandler)handler { 40 if (self.parent) { 41 [self.parent setMessageHandlerOnChannel:channel binaryMessageHandler:handler]; 42 } else { 43 FML_LOG(WARNING) << "Communicating on a dead channel."; 44 } 45} 46 47@end 48