• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_
6 #define FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "flutter/fml/memory/ref_counted.h"
12 #include "flutter/fml/memory/ref_ptr.h"
13 #include "flutter/lib/ui/window/platform_message_response.h"
14 
15 namespace flutter {
16 
17 class PlatformMessage : public fml::RefCountedThreadSafe<PlatformMessage> {
18   FML_FRIEND_REF_COUNTED_THREAD_SAFE(PlatformMessage);
19   FML_FRIEND_MAKE_REF_COUNTED(PlatformMessage);
20 
21  public:
channel()22   const std::string& channel() const { return channel_; }
data()23   const std::vector<uint8_t>& data() const { return data_; }
hasData()24   bool hasData() { return hasData_; }
25 
response()26   const fml::RefPtr<PlatformMessageResponse>& response() const {
27     return response_;
28   }
29 
30  private:
31   PlatformMessage(std::string channel,
32                   std::vector<uint8_t> data,
33                   fml::RefPtr<PlatformMessageResponse> response);
34   PlatformMessage(std::string channel,
35                   fml::RefPtr<PlatformMessageResponse> response);
36   ~PlatformMessage();
37 
38   std::string channel_;
39   std::vector<uint8_t> data_;
40   bool hasData_;
41   fml::RefPtr<PlatformMessageResponse> response_;
42 };
43 
44 }  // namespace flutter
45 
46 #endif  // FLUTTER_LIB_UI_PLATFORM_PLATFORM_MESSAGE_H_
47