From 413f4a5b2123c1625d615315db293a080078482b Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Wed, 28 Nov 2018 11:36:05 +0100 Subject: API: Use string type instead of u8. The new string type is modelled after string in proto3. It is always variable length. Change-Id: I64884067e28a80072c8dac31b7c7c82d6e306051 Signed-off-by: Ole Troan Signed-off-by: Michal Cmarada Signed-off-by: Ole Troan --- extras/japi/java/jvpp-core/jvpp_core.h | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 extras/japi/java/jvpp-core/jvpp_core.h (limited to 'extras/japi/java/jvpp-core/jvpp_core.h') diff --git a/extras/japi/java/jvpp-core/jvpp_core.h b/extras/japi/java/jvpp-core/jvpp_core.h new file mode 100644 index 00000000000..bbf7a71fa31 --- /dev/null +++ b/extras/japi/java/jvpp-core/jvpp_core.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2018 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef VPP_JVPP_CORE_H +#define VPP_JVPP_CORE_H + +#include + +#endif //VPP_JVPP_CORE_H + +// /** +// * Host to network byte order conversion for string type. Converts String in Java to VPP string type. +// * typedef struct +// * { +// * u32 length; +// * u8 buf[0]; +// * } __attribute__ ((packed)) vl_api_string_t; +// */ +static void _host_to_net_string(JNIEnv * env, jstring javaString, vl_api_string_t * _net) +{ + const char *nativeString = (*env)->GetStringUTFChars(env, javaString, 0); + int len = strlen(nativeString); + + vl_api_string_t * vl_api_string = (vl_api_string_t *)calloc(1, (sizeof(vl_api_string_t) + len * sizeof(u8))); + if (NULL == vl_api_string) + return; + + vl_api_string->length = len; + memcpy(vl_api_string->buf, nativeString, len); + + _net = vl_api_string; + (*env)->ReleaseStringUTFChars(env, javaString, nativeString); +} + +// +// /** +// * Network to host byte order conversion for string type. Converts VPP string type to String in Java +// * typedef struct +// * { +// * u32 length; +// * u8 buf[0]; +// * } __attribute__ ((packed)) vl_api_string_t; +// */ +static jstring _net_to_host_string(JNIEnv * env, const vl_api_string_t * _net) +{ + jstring jstr = (*env)->NewStringUTF(env, (char *)_net->buf); + + return jstr; +} -- cgit 1.2.3-korg