Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
API: Use string type instead of u8.
[vpp.git]
/
extras
/
japi
/
java
/
jvpp
/
gen
/
jvppgen
/
jni_common_gen.py
diff --git
a/extras/japi/java/jvpp/gen/jvppgen/jni_common_gen.py
b/extras/japi/java/jvpp/gen/jvppgen/jni_common_gen.py
index
708cc1c
..
b52e5ff
100755
(executable)
--- a/
extras/japi/java/jvpp/gen/jvppgen/jni_common_gen.py
+++ b/
extras/japi/java/jvpp/gen/jvppgen/jni_common_gen.py
@@
-165,6
+165,7
@@
def _generate_field_length_check(field):
else:
return ""
else:
return ""
+
# Make sure we do not write more elements that are expected
_FIELD_LENGTH_CHECK = Template("""
size_t max_size = ${field_length};
# Make sure we do not write more elements that are expected
_FIELD_LENGTH_CHECK = Template("""
size_t max_size = ${field_length};
@@
-177,9
+178,13
@@
def _generate_j2c_scalar_swap(field, struct_ref_name, is_alias):
host = field.java_name
if not is_alias:
net = "%s->%s" % (struct_ref_name, field.name)
host = field.java_name
if not is_alias:
net = "%s->%s" % (struct_ref_name, field.name)
- return " %s;" % field_type.get_host_to_net_function(host, net)
+ if field_type.name == "string":
+ net = "%s->%s" % (struct_ref_name, field.name)
+ return " _host_to_net_%s(env, %s, (vl_api_string_t *) &%s);" % (field_type.name, host, net)
+ else:
+ return " %s;" % field_type.get_host_to_net_function(host, net)
else:
else:
- net = "%s" %
(struct_ref_name)
+ net = "%s" %
struct_ref_name
return " *%s;" % field_type.get_host_to_net_function(host, net)
else:
return " %s->%s = %s;" % (struct_ref_name, field.name, field.java_name)
return " *%s;" % field_type.get_host_to_net_function(host, net)
else:
return " %s->%s = %s;" % (struct_ref_name, field.name, field.java_name)
@@
-424,7
+429,10
@@
_C2J_ENUM_SWAP_TEMPLATE = Template("""
def _generate_c2j_primitive_type_swap(msg_java_name, field, object_ref_name, struct_ref_name, is_alias):
field_type = field.type
if not is_alias:
def _generate_c2j_primitive_type_swap(msg_java_name, field, object_ref_name, struct_ref_name, is_alias):
field_type = field.type
if not is_alias:
- template = _C2J_PRIMITIVE_TYPE_SWAP_TEMPLATE
+ if field_type.name == "string":
+ template = _C2J_STRING_TYPE_SWAP_TEMPLATE
+ else:
+ template = _C2J_PRIMITIVE_TYPE_SWAP_TEMPLATE
else:
template = _C2J_ALIAS_PRIMITIVE_TYPE_SWAP_TEMPLATE
return template.substitute(
else:
template = _C2J_ALIAS_PRIMITIVE_TYPE_SWAP_TEMPLATE
return template.substitute(
@@
-444,6
+452,12
@@
_C2J_PRIMITIVE_TYPE_SWAP_TEMPLATE = Template("""
""")
""")
+_C2J_STRING_TYPE_SWAP_TEMPLATE = Template("""
+ jfieldID ${java_name}FieldId = (*env)->GetFieldID(env, ${class_ref_name}Class, "${java_name}", "${jni_signature}");
+ (*env)->Set${jni_accessor}Field(env, ${object_ref_name}, ${java_name}FieldId, ${net_to_host_function}(env, (const vl_api_string_t *) &${struct_ref_name}->${c_name}));
+""")
+
+
_C2J_ALIAS_PRIMITIVE_TYPE_SWAP_TEMPLATE = Template("""
jfieldID ${java_name}FieldId = (*env)->GetFieldID(env, ${class_ref_name}Class, "${java_name}", "${jni_signature}");
(*env)->Set${jni_accessor}Field(env, ${object_ref_name}, ${java_name}FieldId, ${net_to_host_function}(*${struct_ref_name}));
_C2J_ALIAS_PRIMITIVE_TYPE_SWAP_TEMPLATE = Template("""
jfieldID ${java_name}FieldId = (*env)->GetFieldID(env, ${class_ref_name}Class, "${java_name}", "${jni_signature}");
(*env)->Set${jni_accessor}Field(env, ${object_ref_name}, ${java_name}FieldId, ${net_to_host_function}(*${struct_ref_name}));