def _generate_class(model, t, type_handlers): ref_name = t.java_name_lower is_alias = t.name in model._aliases if t.name == "ip6_address_with_prefix": is_alias = True type_handlers.append( _TYPE_HOST_TO_NET_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, jni_identifiers=generate_j2c_identifiers(t, class_ref_name="%sClass" % ref_name, object_ref_name="_host"), type_swap=generate_j2c_swap(t, struct_ref_name="_net", is_alias=is_alias))) type_handlers.append( _TYPE_NET_TO_HOST_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, type_swap=generate_c2j_swap(t, object_ref_name="_host", struct_ref_name="_net", is_alias=is_alias)))
def _generate_class(model, t, type_handlers): ref_name = t.java_name_lower jni_identifiers = generate_j2c_identifiers(t, class_ref_name="%sClass" % ref_name, object_ref_name="_host") type_handlers.append( _TYPE_NET_TO_HOST_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, jni_identifiers=jni_identifiers, type_swap=generate_j2c_swap(t, struct_ref_name="_net"))) type_handlers.append( _TYPE_HOST_TO_NET_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, jni_identifiers=jni_identifiers, type_swap=generate_c2j_swap(t, object_ref_name="_host", struct_ref_name="_net")))
def generate_jni_handlers(model): """ Generates msg handlers for all messages except for dumps and requests (handled by vpp, not client). :param model: meta-model of VPP API used for jVPP generation. """ jni_impl = [] for msg in model.messages: msg_name = msg.name if is_control_ping(msg) or is_control_ping_reply(msg): # Skip control ping managed by jvpp registry. continue if is_dump(msg) or is_request(msg): continue jni_impl.append(_MSG_HANDLER_TEMPLATE.substitute( c_name=msg_name, json_filename=model.json_api_files, json_definition=msg.doc, plugin_name=model.plugin_name, err_handler=_generate_error_handler(msg), class_ref_name=msg.java_name_lower, dto_name=msg.java_name_upper, dto_setters=generate_c2j_swap(msg, object_ref_name="dto", struct_ref_name="mp", is_alias=False) )) return "".join(jni_impl)
def _generate_union_net_to_host(model, t): return _UNION_NET_TO_HOST_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=t.java_name_lower, class_FQN=t.jni_name, swap=generate_c2j_swap(t, object_ref_name="_host", struct_ref_name="_net") )
def generate_type_handlers(model): """ Generates msg handlers for all messages except for dumps and requests (handled by vpp, not client). :param model: meta-model of VPP API used for jVPP generation. """ type_handlers = [] for t in model.types: if not isinstance(t, Class): continue ref_name = t.java_name_lower jni_identifiers = generate_j2c_identifiers(t, class_ref_name="%sClass" % ref_name, object_ref_name="_host") type_handlers.append( _TYPE_NET_TO_HOST_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, jni_identifiers=jni_identifiers, type_swap=generate_j2c_swap(t, struct_ref_name="_net"))) type_handlers.append( _TYPE_HOST_TO_NET_TEMPLATE.substitute( c_name=t.name, json_filename=model.json_api_files, json_definition=t.doc, type_reference_name=ref_name, class_FQN=t.jni_name, jni_identifiers=jni_identifiers, type_swap=generate_c2j_swap(t, object_ref_name="_host", struct_ref_name="_net"))) return "\n".join(type_handlers)