Package ej.sni
Class SNI
- java.lang.Object
-
- ej.sni.SNI
-
public class SNI extends Object
This utility class provides methods to convert between Java & C strings.Note: the platform default encoding is used. For converting using a different encoding, see
String(byte[], String)&String.getBytes(String).Example:
package example; public class Foo { private static final int MAX_STRING_SIZE = 42; // including the '\0' character public void pushString(String str) { pushString(SNI.toCString(str)); } public String pullString() { byte[] buffer = new byte[MAX_STRING_SIZE]; pullString(buffer); return SNI.toJavaString(buffer); } private static native void pushString(byte[] str); private static native void pullString(byte[] buffer); }#include <sni.h> #include <string.h> #define MAX_STRING_SIZE 42 static char gStr[MAX_STRING_SIZE]; void Java_example_Foo_pushString(jbyte *str) { strncpy(gStr, (char*) str, MAX_STRING_SIZE); } void Java_example_Foo_pullString(jbyte *buffer) { strncpy((char*) buffer, gStr, MAX_STRING_SIZE); }
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]toCString(String javaString)Transforms a Java String into a C String.
The platform default encoding is used to transform Java characters into C characters.
The returned C String is a NULL terminated String (ends with '\0').static voidtoCString(String javaString, byte[] cString)Transforms a Java String into a C String.
The platform default encoding is used to transform Java characters into C characters.
The created C String is a NULL terminated String (ends with '\0').static StringtoJavaString(byte[] cString)Transforms a C String into a Java String, using platform default encoding.
-
-
-
Method Detail
-
toCString
public static void toCString(String javaString, byte[] cString)
Transforms a Java String into a C String.
The platform default encoding is used to transform Java characters into C characters.
The created C String is a NULL terminated String (ends with '\0'). ThecStringarray length must be at leastjavaString.length()+1.- Parameters:
javaString- the Java String to convert.cString- byte array which contains the C String.- Throws:
IllegalArgumentException- if javaString or cString is null.ArrayIndexOutOfBoundsException- if cString is too small to contain the string.
-
toCString
public static byte[] toCString(String javaString)
Transforms a Java String into a C String.
The platform default encoding is used to transform Java characters into C characters.
The returned C String is a NULL terminated String (ends with '\0').- Parameters:
javaString- the Java String to convert.- Returns:
- a new array that contains the C String representation of the given Java String.
- Throws:
IllegalArgumentException- if javaString is null.
-
toJavaString
public static String toJavaString(byte[] cString)
Transforms a C String into a Java String, using platform default encoding. The C String must be NULL terminated.- Parameters:
cString- byte array which contains the C String.- Returns:
- a new Java String.
- Throws:
IllegalArgumentException- if cString is null or its length is < 1.IllegalArgumentException- if cString is not NULL terminated.
-
-