| // 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. | |
| #ifndef FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_ | |
| #define FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_ | |
| #include <string> | |
| #include <vector> | |
| #include "flutter/fml/memory/ref_counted.h" | |
| #include "flutter/fml/memory/ref_ptr.h" | |
| #include "flutter/lib/ui/window/platform_message_response.h" | |
| namespace flutter { | |
| class PlatformMessage { | |
| public: | |
| PlatformMessage(std::string channel, | |
| fml::MallocMapping data, | |
| fml::RefPtr<PlatformMessageResponse> response); | |
| PlatformMessage(std::string channel, | |
| fml::RefPtr<PlatformMessageResponse> response); | |
| ~PlatformMessage(); | |
| const std::string& channel() const { return channel_; } | |
| const fml::MallocMapping& data() const { return data_; } | |
| bool hasData() { return hasData_; } | |
| const fml::RefPtr<PlatformMessageResponse>& response() const { | |
| return response_; | |
| } | |
| fml::MallocMapping releaseData() { return std::move(data_); } | |
| private: | |
| std::string channel_; | |
| fml::MallocMapping data_; | |
| bool hasData_; | |
| fml::RefPtr<PlatformMessageResponse> response_; | |
| }; | |
| } // namespace flutter | |
| #endif // FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_ |