4
4
5
5
#include " flutter_window.h"
6
6
7
+ #include < flutter/binary_messenger.h>
8
+
7
9
#include < memory>
8
10
#include < optional>
9
11
10
12
#include " flutter/generated_plugin_registrant.h"
11
13
#include " messages.g.h"
12
14
13
15
namespace {
16
+ using pigeon_example::Code;
14
17
using pigeon_example::ErrorOr;
15
18
using pigeon_example::ExampleHostApi;
19
+ using pigeon_example::FlutterError;
20
+ using pigeon_example::MessageData;
21
+ using pigeon_example::MessageFlutterApi;
16
22
17
23
// #docregion cpp-class
18
24
class PigeonApiImplementation : public ExampleHostApi {
@@ -29,14 +35,34 @@ class PigeonApiImplementation : public ExampleHostApi {
29
35
}
30
36
void SendMessage (const MessageData& message,
31
37
std::function<void (ErrorOr<bool > reply)> result) {
32
- if (message.code == Code. kOne ) {
38
+ if (message.code () == Code:: kOne ) {
33
39
result (FlutterError (" code" , " message" , " details" ));
34
40
return ;
35
41
}
36
42
result (true );
37
43
}
38
44
};
39
45
// #enddocregion cpp-class
46
+
47
+ // #docregion cpp-method-flutter
48
+ class PigeonFlutterApi {
49
+ public:
50
+ PigeonFlutterApi (flutter::BinaryMessenger* messenger)
51
+ : flutterApi_(std::make_unique<MessageFlutterApi>(messenger)) {}
52
+
53
+ void CallFlutterMethod (
54
+ const std::string& a_string,
55
+ std::function<void (ErrorOr<std::string> reply)> result) {
56
+ flutterApi_->FlutterMethod (
57
+ &a_string, [result](const std::string& echo) { result (echo); },
58
+ [result](const FlutterError& error) { result (error); });
59
+ }
60
+
61
+ private:
62
+ std::unique_ptr<MessageFlutterApi> flutterApi_;
63
+ };
64
+ // #enddocregion cpp-method-flutter
65
+
40
66
} // namespace
41
67
42
68
FlutterWindow::FlutterWindow (const flutter::DartProject& project)
@@ -49,15 +75,6 @@ bool FlutterWindow::OnCreate() {
49
75
return false ;
50
76
}
51
77
52
- // #docregion cpp-method-flutter
53
- void TestPlugin::CallFlutterMethod (
54
- String aString, std::function<void (ErrorOr<int64_t > reply)> result) {
55
- MessageFlutterApi->FlutterMethod (
56
- aString, [result](String echo) { result (echo); },
57
- [result](const FlutterError& error) { result (error); });
58
- }
59
- // #enddocregion cpp-method-flutter
60
-
61
78
RECT frame = GetClientArea ();
62
79
63
80
// The size here must match the window dimensions to avoid unnecessary surface
0 commit comments