| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "echo_messenger.h" |
| |
| #include <flutter/encodable_value.h> |
| #include <flutter/message_codec.h> |
| |
| namespace testing { |
| |
| EchoMessenger::EchoMessenger( |
| const flutter::MessageCodec<flutter::EncodableValue>* codec) |
| : codec_(codec) {} |
| EchoMessenger::~EchoMessenger() {} |
| |
| // flutter::BinaryMessenger: |
| void EchoMessenger::Send(const std::string& channel, const uint8_t* message, |
| size_t message_size, |
| flutter::BinaryReply reply) const { |
| std::unique_ptr<flutter::EncodableValue> arg_value = |
| codec_->DecodeMessage(message, message_size); |
| const auto& args = std::get<flutter::EncodableList>(*arg_value); |
| std::unique_ptr<std::vector<uint8_t>> reply_data = |
| codec_->EncodeMessage(args[0]); |
| reply(reply_data->data(), reply_data->size()); |
| } |
| |
| void EchoMessenger::SetMessageHandler(const std::string& channel, |
| flutter::BinaryMessageHandler handler) {} |
| |
| } // namespace testing |