Modify dart generator 09/289709/8
authorChanggyu Choi <changyu.choi@samsung.com>
Mon, 20 Mar 2023 04:25:55 +0000 (13:25 +0900)
committerHwanKyu Jhun <h.jhun@samsung.com>
Thu, 23 Mar 2023 01:47:44 +0000 (01:47 +0000)
This patch is for below comments

  https://github.com/flutter-tizen/plugins/pull/541#discussion_r1133544326
  https://github.com/flutter-tizen/plugins/pull/543#discussion_r1133542877

Change-Id: Ic6b2b46b10a82df70d351ffab90ec560ceeb0a83
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
idlc/gen/dart_gen_base_cb.h
idlc/gen/dart_proxy_gen_cb.h
idlc/gen/dart_stub_gen_cb.h

index de3ebbcbf3da05c41a0d6c5a603d33ebd12384b8..3f931b10a92bf3a19604cc47cf6351704ec18cab 100644 (file)
@@ -25,6 +25,8 @@ namespace tidl {
 constexpr const char CB_ANNOTATION[] =
 R"__dart_cb(
 /// Generated by tidlc <VERSION>
+
+// ignore_for_file: public_member_api_docs, omit_local_variable_types
 )__dart_cb";
 
 constexpr const char CB_IMPORT[] =
@@ -89,7 +91,7 @@ abstract class _Delegate extends Parcelable {
   int id = 0;
   bool once = false;
   int sequenceId = 0;
-  Function? callback;
+  Function callback;
   static int sequenceNum = 0;
 
   Future<void> onReceivedEvent(Parcel parcel);
index 4ee55cc00f55facca1ce84b2baabd0765d6e428c..abe78a87e3f35bc323cbc897fa4ca54c8396cf45 100644 (file)
@@ -39,7 +39,7 @@ class _<DELEGATE_NAME> extends _Delegate {
   @override
   Future<void> onReceivedEvent(Parcel parcel) async {
     <DELEGATE_PARCEL_READ>
-    callback?.call(<DELEGATE_PARAMS>);
+    (callback as <DELEGATE_NAME>)(<DELEGATE_PARAMS>);
   }
 }
 )__dart_cb";
@@ -80,16 +80,6 @@ class <INTERFACE_NAME> extends ProxyBase {
     }
   }
 
-  Parcel _consumeCommand(Port port) {
-    final Parcel parcel = Parcel.fromPort(port);
-    final int cmd = parcel.readInt32();
-    if (cmd != _MethodId.result.id) {
-      print('Received parcel is invalid. $cmd');
-    }
-
-    return parcel;
-  }
-
   /// Disposes of registered delegate interface.
   void disposeCallback(Function callback) {
     _delegates
@@ -144,7 +134,11 @@ constexpr const char CB_METHOD_PARCEL_READ[] =
 R"__dart_cb(
 late Parcel parcelReceived;
 while (true) {
-  parcelReceived = _consumeCommand(port);
+  parcelReceived = Parcel.fromPort(port);
+  final int cmd = parcelReceived.readInt32();
+  if (cmd != _MethodId.result.id) {
+    continue;
+  }
   final ParcelHeader headerReceived = parcelReceived.header;
   if (headerReceived.tag.isEmpty) {
     break;
index 4efaf454af38ed8b5361826a70261efa5e9b911f..730f8a8ea41917120c2fd1f74c0c9da33accdc73 100644 (file)
@@ -118,6 +118,8 @@ R"__dart_cb(
 /// This is used when creating a service instance.
 typedef ServiceBuilder = ServiceBase Function(String sender, String instance);
 
+typedef _MethodHandler = Future<void> Function(ServiceBase, Port, Parcel);
+
 /// [<INTERFACE_NAME>] class for RPC.
 class <INTERFACE_NAME> extends StubBase {
   /// Constructor for this class.
@@ -129,7 +131,7 @@ class <INTERFACE_NAME> extends StubBase {
 
   /// The indexable collection of [ServiceBase] class.
   final List<ServiceBase> services = <ServiceBase>[];
-  final Map<int, dynamic> _methodHandlers = <int, dynamic>{};
+  final Map<int, _MethodHandler> _methodHandlers = <int, _MethodHandler>{};
   final ServiceBuilder _serviceBuilder;
 
   @override
@@ -177,7 +179,7 @@ class <INTERFACE_NAME> extends StubBase {
     final Port port = getPort(instance, PortType.main);
     final int cmd = parcel.readInt32();
     if (_methodHandlers.containsKey(cmd)) {
-      await _methodHandlers[cmd](service, port, parcel);
+      await _methodHandlers[cmd]!(service, port, parcel);
     }
   }
 }