summaryrefslogtreecommitdiffstats
path: root/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py')
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py153
1 files changed, 86 insertions, 67 deletions
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
index e1bb43b9a65..b91eca26142 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
@@ -165,82 +165,50 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
methods = []
methods_impl = []
- callbacks = []
+
+ # Generate methods for sending messages.
for func in func_list:
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
if util.is_control_ping(camel_case_name_with_suffix):
+ # Skip control ping managed by jvpp registry.
continue
- if not util.is_reply(camel_case_name_with_suffix) and not util.is_notification(func['name']):
+ # Process replies instead of requests (optimization).
+ if not util.is_reply(camel_case_name_with_suffix):
+ # Do not generate send methods for messages that do not have replies.
continue
- camel_case_method_name = util.underscore_to_camelcase(func['name'])
-
- if not util.is_notification(func["name"]):
- camel_case_request_method_name = util.remove_reply_suffix(util.underscore_to_camelcase(func['name']))
- request_dto = util.remove_reply_suffix(util.underscore_to_camelcase_upper(func['name']))
- if util.is_details(camel_case_name_with_suffix):
- camel_case_reply_name = util.underscore_to_camelcase_upper(func['name'])
- callbacks.append(jvpp_facade_details_callback_method_template.substitute(base_package=base_package,
- plugin_package=plugin_package,
- dto_package=dto_package,
- callback_dto=camel_case_name_with_suffix,
- callback_dto_field=camel_case_method_name,
- callback_dto_reply_dump=camel_case_reply_name + dto_gen.dump_dto_suffix,
- future_package=future_facade_package))
-
- methods.append(future_jvpp_method_template.substitute(plugin_package=plugin_package,
- dto_package=dto_package,
- method_name=camel_case_request_method_name +
- util.underscore_to_camelcase_upper(util.dump_suffix),
- reply_name=camel_case_reply_name + dto_gen.dump_dto_suffix,
- request_name=util.remove_reply_suffix(camel_case_reply_name) +
- util.underscore_to_camelcase_upper(util.dump_suffix)))
- methods_impl.append(future_jvpp_dump_method_impl_template.substitute(plugin_package=plugin_package,
- dto_package=dto_package,
- method_name=camel_case_request_method_name +
- util.underscore_to_camelcase_upper(util.dump_suffix),
- reply_name=camel_case_reply_name + dto_gen.dump_dto_suffix,
- request_name=util.remove_reply_suffix(camel_case_reply_name) +
- util.underscore_to_camelcase_upper(util.dump_suffix)))
- else:
- request_name = util.remove_reply_suffix(camel_case_name_with_suffix)
-
- methods.append(future_jvpp_method_template.substitute(plugin_package=plugin_package,
- dto_package=dto_package,
- method_name=camel_case_request_method_name,
- reply_name=camel_case_name_with_suffix,
- request_name=request_name))
- methods_impl.append(future_jvpp_method_impl_template.substitute(plugin_package=plugin_package,
- dto_package=dto_package,
- method_name=camel_case_request_method_name,
- reply_name=camel_case_name_with_suffix,
- request_name=request_name))
-
- callbacks.append(jvpp_facade_callback_method_template.substitute(base_package=base_package,
- plugin_package=plugin_package,
+ camel_case_request_method_name = util.remove_reply_suffix(util.underscore_to_camelcase(func['name']))
+ if util.is_details(camel_case_name_with_suffix):
+ camel_case_reply_name = util.underscore_to_camelcase_upper(func['name'])
+ methods.append(future_jvpp_method_template.substitute(plugin_package=plugin_package,
+ dto_package=dto_package,
+ method_name=camel_case_request_method_name +
+ util.underscore_to_camelcase_upper(util.dump_suffix),
+ reply_name=camel_case_reply_name + dto_gen.dump_dto_suffix,
+ request_name=util.remove_reply_suffix(camel_case_reply_name) +
+ util.underscore_to_camelcase_upper(util.dump_suffix)))
+ methods_impl.append(future_jvpp_dump_method_impl_template.substitute(plugin_package=plugin_package,
dto_package=dto_package,
- callback_dto=camel_case_name_with_suffix,
- request_dto=request_dto))
-
- if util.is_notification(func["name"]):
- callbacks.append(jvpp_facade_callback_notification_method_template.substitute(plugin_package=plugin_package,
- dto_package=dto_package,
- callback_dto=camel_case_name_with_suffix))
-
- jvpp_file = open(os.path.join(future_facade_package, "FutureJVpp%sFacadeCallback.java" % plugin_name), 'w')
- jvpp_file.write(jvpp_facade_callback_template.substitute(inputfile=inputfile,
- base_package=base_package,
- plugin_package=plugin_package,
- plugin_name=plugin_name,
- dto_package=dto_package,
- notification_package=notification_package,
- callback_package=callback_package,
- methods="".join(callbacks),
- future_package=future_facade_package))
- jvpp_file.flush()
- jvpp_file.close()
+ method_name=camel_case_request_method_name +
+ util.underscore_to_camelcase_upper(util.dump_suffix),
+ reply_name=camel_case_reply_name + dto_gen.dump_dto_suffix,
+ request_name=util.remove_reply_suffix(camel_case_reply_name) +
+ util.underscore_to_camelcase_upper(util.dump_suffix)))
+ else:
+ request_name = util.remove_reply_suffix(camel_case_name_with_suffix)
+
+ methods.append(future_jvpp_method_template.substitute(plugin_package=plugin_package,
+ dto_package=dto_package,
+ method_name=camel_case_request_method_name,
+ reply_name=camel_case_name_with_suffix,
+ request_name=request_name))
+ methods_impl.append(future_jvpp_method_impl_template.substitute(plugin_package=plugin_package,
+ dto_package=dto_package,
+ method_name=camel_case_request_method_name,
+ reply_name=camel_case_name_with_suffix,
+ request_name=request_name))
jvpp_file = open(os.path.join(future_facade_package, "FutureJVpp%s.java" % plugin_name), 'w')
jvpp_file.write(future_jvpp_template.substitute(inputfile=inputfile,
@@ -265,6 +233,8 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
jvpp_file.flush()
jvpp_file.close()
+ generate_callback(func_list, base_package, plugin_package, plugin_name, dto_package, callback_package, notification_package, future_facade_package, inputfile)
+
future_jvpp_template = Template('''
package $plugin_package.$future_package;
@@ -337,3 +307,52 @@ future_jvpp_dump_method_impl_template = Template('''
return send(request, new $plugin_package.$dto_package.$reply_name());
}
''')
+
+
+def generate_callback(func_list, base_package, plugin_package, plugin_name, dto_package, callback_package, notification_package, future_facade_package, inputfile):
+ callbacks = []
+ for func in func_list:
+ camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
+
+ if util.is_control_ping(camel_case_name_with_suffix):
+ # Skip control ping managed by jvpp registry.
+ continue
+ if util.is_dump(func['name']) or util.is_request(func['name'], func_list):
+ continue
+
+ # Generate callbacks for all messages except for dumps and requests (handled by vpp, not client).
+ if util.is_details(camel_case_name_with_suffix):
+ # Callbacks for detail messages that append replies to a list.
+ camel_case_method_name = util.underscore_to_camelcase(func['name'])
+ camel_case_reply_name = util.underscore_to_camelcase_upper(func['name'])
+ callbacks.append(jvpp_facade_details_callback_method_template.substitute(base_package=base_package,
+ plugin_package=plugin_package,
+ dto_package=dto_package,
+ callback_dto=camel_case_name_with_suffix,
+ callback_dto_field=camel_case_method_name,
+ callback_dto_reply_dump=camel_case_reply_name + dto_gen.dump_dto_suffix,
+ future_package=future_facade_package))
+ elif util.is_reply(camel_case_name_with_suffix):
+ request_dto = util.remove_reply_suffix(util.underscore_to_camelcase_upper(func['name']))
+ callbacks.append(jvpp_facade_callback_method_template.substitute(base_package=base_package,
+ plugin_package=plugin_package,
+ dto_package=dto_package,
+ callback_dto=camel_case_name_with_suffix,
+ request_dto=request_dto))
+ else:
+ callbacks.append(jvpp_facade_callback_notification_method_template.substitute(plugin_package=plugin_package,
+ dto_package=dto_package,
+ callback_dto=camel_case_name_with_suffix))
+
+ jvpp_file = open(os.path.join(future_facade_package, "FutureJVpp%sFacadeCallback.java" % plugin_name), 'w')
+ jvpp_file.write(jvpp_facade_callback_template.substitute(inputfile=inputfile,
+ base_package=base_package,
+ plugin_package=plugin_package,
+ plugin_name=plugin_name,
+ dto_package=dto_package,
+ notification_package=notification_package,
+ callback_package=callback_package,
+ methods="".join(callbacks),
+ future_package=future_facade_package))
+ jvpp_file.flush()
+ jvpp_file.close()