aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2017-12-07 16:49:26 +0100
committerMarek Gradzki <mgradzki@cisco.com>2017-12-07 16:54:28 +0100
commit8f3ad25c637381da3f499f992c3477768cb636f9 (patch)
treef26dd0e2804b1a111affbaade95554cffebe1807
parenta3611a70347d870ef4d657e010a1fe736a9fdd72 (diff)
jvpp: remove special request<>reply mappings
Since L2FibTable removal and introduction of dedicated SW Interface Event, special message handling code can be removed. The patch also fixes issues found by Intelij's code inspection tool. Change-Id: Ic4b2fd12ac30c7627f4cd6769716e4bb52ec0b10 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
-rwxr-xr-xsrc/vpp-api/java/jvpp/gen/jvpp_gen.py1
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py4
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py11
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py7
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py17
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py26
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py24
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py7
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py2
-rw-r--r--src/vpp-api/java/jvpp/gen/jvppgen/util.py31
10 files changed, 28 insertions, 102 deletions
diff --git a/src/vpp-api/java/jvpp/gen/jvpp_gen.py b/src/vpp-api/java/jvpp/gen/jvpp_gen.py
index 6648a4f7156..ca2d2624d50 100755
--- a/src/vpp-api/java/jvpp/gen/jvpp_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvpp_gen.py
@@ -15,7 +15,6 @@
#
import argparse
-import importlib
import sys
import os
import json
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
index f0aee47b0f5..e1c31dd6661 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
@@ -17,8 +17,6 @@ import os
import util
from string import Template
-from util import remove_suffix
-
callback_suffix = "Callback"
callback_template = Template("""
@@ -63,7 +61,7 @@ def generate_callbacks(func_list, base_package, plugin_package, plugin_name, cal
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if not util.is_reply(camel_case_name_with_suffix) and not util.is_notification(func['name']):
continue
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
index e94bbc5cb28..5f2cdc2ad05 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
@@ -72,7 +72,7 @@ def generate_dtos(func_list, base_package, plugin_package, plugin_name, dto_pack
camel_case_method_name = util.underscore_to_camelcase(func['name'])
dto_path = os.path.join(dto_package, camel_case_dto_name + ".java")
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_dto_name):
+ if util.is_control_ping(camel_case_dto_name):
continue
fields = generate_dto_fields(camel_case_dto_name, func)
@@ -83,7 +83,7 @@ def generate_dtos(func_list, base_package, plugin_package, plugin_name, dto_pack
if not util.is_just_notification(func["name"]):
if util.is_reply(camel_case_dto_name):
description = "reply DTO"
- request_dto_name = get_request_name(camel_case_dto_name, func['name'])
+ request_dto_name = util.remove_reply_suffix(camel_case_dto_name)
if util.is_details(camel_case_dto_name):
# FIXME assumption that dump calls end with "Dump" suffix. Not enforced in vpe.api
base_type += "JVppReply<%s.%s.%s>" % (plugin_package, dto_package, request_dto_name + "Dump")
@@ -272,13 +272,6 @@ dump_dto_suffix = "ReplyDump"
dump_reply_artificial_dtos = {}
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_request_name(camel_case_dto_name, func_name):
- return util.underscore_to_camelcase_upper(
- util.unconventional_naming_rep_req[func_name]) if func_name in util.unconventional_naming_rep_req \
- else util.remove_reply_suffix(camel_case_dto_name)
-
-
def flush_dump_reply_dtos(inputfile):
for dump_reply_artificial_dto in dump_reply_artificial_dtos.values():
dto_path = os.path.join(dump_reply_artificial_dto['dto_package'],
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
index cb0d66e85cc..8c8be5b8877 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
@@ -27,9 +27,6 @@ default_dto_field_setter_template = Template("""
(*env)->Set${jni_setter}(env, ${object_name}, ${field_reference_name}FieldId, mp->${c_name});
""")
-variable_length_array_value_template = Template("""mp->${length_var_name}""")
-variable_length_array_template = Template("""clib_net_to_host_${length_field_type}(${value})""")
-
u16_dto_field_setter_template = Template("""
(*env)->Set${jni_setter}(env, ${object_name}, ${field_reference_name}FieldId, clib_net_to_host_u16(mp->${c_name}));
""")
@@ -185,10 +182,6 @@ i32_struct_setter_template = Template("""
u64_struct_setter_template = Template("""
mp->${c_name} = clib_host_to_net_u64(${field_reference_name});""")
-array_length_enforcement_template = Template("""
- size_t max_size = ${field_length};
- if (cnt > max_size) cnt = max_size;""")
-
u8_array_struct_setter_template = Template("""
if (${field_reference_name}) {
jsize cnt = (*env)->GetArrayLength (env, ${field_reference_name});
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
index e2f6aa4d505..e67b6ecfa5d 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
@@ -14,13 +14,13 @@
# limitations under the License.
#
-import os, util
+import util
from string import Template
import jni_gen
-def is_manually_generated(f_name, plugin_name):
+def is_manually_generated(f_name):
return f_name in {'control_ping_reply'}
@@ -67,7 +67,7 @@ def generate_class_cache(func_list, plugin_name):
class_name = util.underscore_to_camelcase_upper(c_name)
ref_name = util.underscore_to_camelcase(c_name)
- if util.is_ignored(c_name) or util.is_control_ping(class_name):
+ if util.is_control_ping(class_name):
continue
class_references.append(class_reference_template.substitute(
@@ -144,8 +144,8 @@ def generate_jni_impl(func_list, plugin_name, inputfile):
for f in func_list:
f_name = f['name']
camel_case_function_name = util.underscore_to_camelcase(f_name)
- if is_manually_generated(f_name, plugin_name) or util.is_reply(camel_case_function_name) \
- or util.is_ignored(f_name) or util.is_just_notification(f_name):
+ if is_manually_generated(f_name) or util.is_reply(camel_case_function_name) \
+ or util.is_just_notification(f_name):
continue
arguments = ''
@@ -254,7 +254,7 @@ def generate_msg_handlers(func_list, plugin_name, inputfile):
dto_name = util.underscore_to_camelcase_upper(handler_name)
ref_name = util.underscore_to_camelcase(handler_name)
- if is_manually_generated(handler_name, plugin_name) or util.is_ignored(handler_name):
+ if is_manually_generated(handler_name):
continue
if not util.is_reply(dto_name) and not util.is_notification(handler_name):
@@ -308,7 +308,7 @@ def generate_handler_registration(func_list):
name = f['name']
camelcase_name = util.underscore_to_camelcase(f['name'])
- if (not util.is_reply(camelcase_name) and not util.is_notification(name)) or util.is_ignored(name) \
+ if (not util.is_reply(camelcase_name) and not util.is_notification(name)) \
or util.is_control_ping(camelcase_name):
continue
@@ -328,9 +328,6 @@ def generate_api_verification(func_list):
for f in func_list:
name = f['name']
- if util.is_ignored(name):
- continue
-
api_verification.append(api_verification_template.substitute(
name=name,
crc=f['crc']))
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
index 53e9f49e029..f2659871f2f 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
@@ -17,7 +17,6 @@ import os, util
from string import Template
import callback_gen
-import dto_gen
jvpp_ifc_template = Template("""
package $plugin_package.$callback_facade_package;
@@ -112,7 +111,7 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
methods_impl = []
for func in func_list:
- if util.is_notification(func['name']) or util.is_ignored(func['name']):
+ if util.is_notification(func['name']):
continue
camel_case_name = util.underscore_to_camelcase(func['name'])
@@ -121,10 +120,10 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
continue
# Strip suffix for dump calls
- callback_type = get_request_name(camel_case_name_upper, func['name'])
- if (util.is_dump(camel_case_name_upper)):
+ callback_type = get_request_name(camel_case_name_upper)
+ if util.is_dump(camel_case_name_upper):
callback_type += "Details"
- elif (not util.is_notification(camel_case_name_upper)):
+ elif not util.is_notification(camel_case_name_upper):
callback_type += "Reply"
callback_type += callback_gen.callback_suffix
@@ -282,7 +281,7 @@ def generate_callback(func_list, base_package, plugin_package, plugin_name, dto_
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if util.is_reply(camel_case_name_with_suffix):
@@ -314,18 +313,9 @@ def generate_callback(func_list, base_package, plugin_package, plugin_name, dto_
jvpp_file.close()
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_request_name(camel_case_dto_name, func_name):
- if func_name in reverse_dict(util.unconventional_naming_rep_req):
- request_name = util.underscore_to_camelcase_upper(reverse_dict(util.unconventional_naming_rep_req)[func_name])
- else:
- request_name = camel_case_dto_name
- return remove_suffix(request_name)
-
-
-def reverse_dict(map):
- return dict((v, k) for k, v in map.iteritems())
-
+# Returns request name
+def get_request_name(camel_case_dto_name):
+ return remove_suffix(camel_case_dto_name)
def remove_suffix(name):
if util.is_reply(name):
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 a45a532d7f2..e1bb43b9a65 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
@@ -169,7 +169,7 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
for func in func_list:
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if not util.is_reply(camel_case_name_with_suffix) and not util.is_notification(func['name']):
@@ -181,8 +181,7 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
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 = get_standard_dump_reply_name(util.underscore_to_camelcase_upper(func['name']),
- 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,
@@ -206,8 +205,7 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name, dto_pack
request_name=util.remove_reply_suffix(camel_case_reply_name) +
util.underscore_to_camelcase_upper(util.dump_suffix)))
else:
- request_name = util.underscore_to_camelcase_upper(util.unconventional_naming_rep_req[func['name']]) \
- if func['name'] in util.unconventional_naming_rep_req else util.remove_reply_suffix(camel_case_name_with_suffix)
+ 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,
@@ -339,19 +337,3 @@ future_jvpp_dump_method_impl_template = Template('''
return send(request, new $plugin_package.$dto_package.$reply_name());
}
''')
-
-
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_standard_dump_reply_name(camel_case_dto_name, func_name):
- # FIXME this is a hotfix for sub-details callbacks
- # FIXME also for L2FibTableEntry
- # It's all because unclear mapping between
- # request -> reply,
- # dump -> reply, details,
- # notification_start -> reply, notifications
-
- # vpe.api needs to be "standardized" so we can parse the information and create maps before generating java code
- suffix = func_name.split("_")[-1]
- return util.underscore_to_camelcase_upper(
- util.unconventional_naming_rep_req[func_name]) + util.underscore_to_camelcase_upper(suffix) if func_name in util.unconventional_naming_rep_req \
- else camel_case_dto_name
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
index f802ee27014..c2b8ebbf574 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os, util
+import util
from string import Template
jvpp_ifc_template = Template("""
@@ -173,11 +173,6 @@ def generate_jvpp(func_list, base_package, plugin_package, plugin_name_underscor
methods = []
methods_impl = []
for func in func_list:
-
- # Skip structures that are used only as notifications
- if util.is_ignored(func['name']):
- continue
-
camel_case_name = util.underscore_to_camelcase(func['name'])
camel_case_name_upper = util.underscore_to_camelcase_upper(func['name'])
if util.is_reply(camel_case_name):
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
index 96111193f07..6da58c2e12c 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
@@ -178,7 +178,7 @@ def generate_notification_registry(func_list, base_package, plugin_package, plug
callback_file = open(os.path.join(notification_package, "Global%sEventCallback.java" % plugin_name), 'w')
global_notification_callback_callbacks = ""
- if (callbacks):
+ if callbacks:
global_notification_callback_callbacks = " extends " + ", ".join(callbacks)
callback_file.write(global_notification_callback_template.substitute(inputfile=inputfile,
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/util.py b/src/vpp-api/java/jvpp/gen/jvppgen/util.py
index 48645246596..6c2ffbc420c 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/util.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/util.py
@@ -35,16 +35,15 @@ def remove_folder(folder):
removedirs(folder)
-reply_suffixes = ("reply", "details", "l2fibtableentry")
+reply_suffixes = ("reply", "details")
def is_reply(name):
return name.lower().endswith(reply_suffixes)
-details_suffix = "details"
def is_details(name):
- return name.lower().endswith(reply_suffixes[1]) or name.lower().endswith(reply_suffixes[2])
+ return name.lower().endswith(reply_suffixes[1])
def is_retval_field(name):
@@ -60,11 +59,7 @@ def is_dump(name):
def get_reply_suffix(name):
for reply_suffix in reply_suffixes:
if name.lower().endswith(reply_suffix):
- if reply_suffix == reply_suffixes[2]:
- # FIXME workaround for l2_fib_table_entry
- return 'entry'
- else:
- return reply_suffix
+ return reply_suffix
# Mapping according to:
# http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html
@@ -94,7 +89,7 @@ jni_2_java_type_mapping = {'u8': 'byte',
vpp_2_jni_type_mapping = {'u8': 'jbyte',
'u8[]': 'jbyteArray',
'i8': 'jbyte',
- 'u8[]': 'jbyteArray',
+ 'i8[]': 'jbyteArray',
'u16': 'jshort',
'u16[]': 'jshortArray',
'i16': 'jshort',
@@ -153,21 +148,9 @@ jni_field_accessors = {'u8': 'ByteField',
'f64[]': 'ObjectField'
}
-
-# vpe.api calls that do not follow naming conventions and have to be handled exceptionally when finding reply -> request mapping
-# FIXME in vpe.api
-unconventional_naming_rep_req = {
- }
-
-#
# FIXME no convention in the naming of events (notifications) in vpe.api
notifications_message_suffixes = ("event", "counters")
-# messages that must be ignored. These messages are INSUFFICIENTLY marked as disabled in vpe.api
-# FIXME
-ignored_messages = []
-
-
def is_notification(name):
""" Returns true if the structure is a notification regardless of its no other use """
return is_just_notification(name)
@@ -178,10 +161,6 @@ def is_just_notification(name):
return name.lower().endswith(notifications_message_suffixes)
-def is_ignored(param):
- return param.lower() in ignored_messages
-
-
def remove_reply_suffix(camel_case_name_with_suffix):
return remove_suffix(camel_case_name_with_suffix, get_reply_suffix(camel_case_name_with_suffix))
@@ -194,7 +173,7 @@ def remove_suffix(camel_case_name_with_suffix, suffix):
def is_control_ping(camel_case_name_with_suffix):
- return camel_case_name_with_suffix.lower().startswith("controlping");
+ return camel_case_name_with_suffix.lower().startswith("controlping")
def api_message_to_javadoc(api_message):