WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
wpi::util::java Namespace Reference

Java Native Interface (JNI) utility functions. More...

Namespaces

namespace  detail

Classes

class  JClass
 Finds a class and keeps it as a global reference. More...
struct  JClassInit
class  JGlobal
class  JLocal
 Container class for cleaning up Java local references. More...
class  JStringRef
 Java string (jstring) reference. More...
class  JCallbackThread
 Generic callback thread implementation. More...
class  JCallbackManager
class  JSingletonCallbackManager
class  JException
 Finds an exception class and keep it as a global reference. More...
struct  JExceptionInit

Typedefs

template<typename T, size_t Extent = std::dynamic_extent>
using JSpan = detail::JSpanBase<T, false, Extent>
template<typename T, size_t Extent = std::dynamic_extent>
using CriticalJSpan = detail::JSpanBase<T, true, Extent>

Functions

std::string GetJavaStackTrace (JNIEnv *env, std::string *func=nullptr, std::string_view excludeFuncPrefix={})
 Gets a Java stack trace.
jstring MakeJString (JNIEnv *env, std::string_view str)
 Convert a UTF8 string into a jstring.
template<typename T>
jintArray MakeJIntArray (JNIEnv *env, std::span< const T > arr)
 Convert a span to a jintArray.
template<typename T>
jintArray MakeJIntArray (JNIEnv *env, std::span< T > arr)
 Convert a span to a jintArray.
template<typename T>
jintArray MakeJIntArray (JNIEnv *env, const SmallVectorImpl< T > &arr)
 Convert a SmallVector to a jintArray.
template<typename T>
jintArray MakeJIntArray (JNIEnv *env, const std::vector< T > &arr)
 Convert a std::vector to a jintArray.
jbyteArray MakeJByteArray (JNIEnv *env, std::span< const uint8_t > str)
 Convert a span into a jbyteArray.
jbooleanArray MakeJBooleanArray (JNIEnv *env, std::span< const int > arr)
 Convert an array of integers into a jbooleanArray.
jbooleanArray MakeJBooleanArray (JNIEnv *env, std::span< const bool > arr)
 Convert an array of booleans into a jbooleanArray.
template<class T>
requires (sizeof(typename T::value_type) == sizeof(jlong) && std::integral<typename T::value_type>)
jlongArray MakeJLongArray (JNIEnv *env, const T &arr)
jobjectArray MakeJStringArray (JNIEnv *env, std::span< const std::string > arr)
 Convert an array of std::string into a jarray of jstring.
jobjectArray MakeJStringArray (JNIEnv *env, std::span< std::string_view > arr)
 Convert an array of std::string into a jarray of jstring.
std::string GetJavaStackTrace (JNIEnv *env, std::string_view skipPrefix)

Detailed Description

Java Native Interface (JNI) utility functions.

Typedef Documentation

◆ CriticalJSpan

template<typename T, size_t Extent = std::dynamic_extent>
using wpi::util::java::CriticalJSpan = detail::JSpanBase<T, true, Extent>

◆ JSpan

template<typename T, size_t Extent = std::dynamic_extent>
using wpi::util::java::JSpan = detail::JSpanBase<T, false, Extent>

Function Documentation

◆ GetJavaStackTrace() [1/2]

std::string wpi::util::java::GetJavaStackTrace ( JNIEnv * env,
std::string * func = nullptr,
std::string_view excludeFuncPrefix = {} )
inline

Gets a Java stack trace.

Also provides the last function in the stack trace not starting with excludeFuncPrefix (useful for e.g. finding the first user call to a series of library functions).

Parameters
envJRE environment.
funcStorage for last function in the stack trace not starting with excludeFuncPrefix.
excludeFuncPrefixPrefix for functions to ignore in stack trace.

◆ GetJavaStackTrace() [2/2]

std::string wpi::util::java::GetJavaStackTrace ( JNIEnv * env,
std::string_view skipPrefix )
inline

◆ MakeJBooleanArray() [1/2]

jbooleanArray wpi::util::java::MakeJBooleanArray ( JNIEnv * env,
std::span< const bool > arr )
inline

Convert an array of booleans into a jbooleanArray.

Parameters
envJRE environment.
arrArray to convert.

◆ MakeJBooleanArray() [2/2]

jbooleanArray wpi::util::java::MakeJBooleanArray ( JNIEnv * env,
std::span< const int > arr )
inline

Convert an array of integers into a jbooleanArray.

Parameters
envJRE environment.
arrArray to convert.

◆ MakeJByteArray()

jbyteArray wpi::util::java::MakeJByteArray ( JNIEnv * env,
std::span< const uint8_t > str )
inline

Convert a span into a jbyteArray.

Parameters
envJRE environment.
strspan to convert.

◆ MakeJIntArray() [1/4]

template<typename T>
jintArray wpi::util::java::MakeJIntArray ( JNIEnv * env,
const SmallVectorImpl< T > & arr )
inline

Convert a SmallVector to a jintArray.

This is required in addition to ArrayRef because template resolution occurs prior to implicit conversions.

Parameters
envJRE environment.
arrSmallVector to convert.

◆ MakeJIntArray() [2/4]

template<typename T>
jintArray wpi::util::java::MakeJIntArray ( JNIEnv * env,
const std::vector< T > & arr )
inline

Convert a std::vector to a jintArray.

This is required in addition to ArrayRef because template resolution occurs prior to implicit conversions.

Parameters
envJRE environment.
arrSmallVector to convert.

◆ MakeJIntArray() [3/4]

template<typename T>
jintArray wpi::util::java::MakeJIntArray ( JNIEnv * env,
std::span< const T > arr )
inline

Convert a span to a jintArray.

Parameters
envJRE environment.
arrSpan to convert.

◆ MakeJIntArray() [4/4]

template<typename T>
jintArray wpi::util::java::MakeJIntArray ( JNIEnv * env,
std::span< T > arr )
inline

Convert a span to a jintArray.

Parameters
envJRE environment.
arrSpan to convert.

◆ MakeJLongArray()

template<class T>
requires (sizeof(typename T::value_type) == sizeof(jlong) && std::integral<typename T::value_type>)
jlongArray wpi::util::java::MakeJLongArray ( JNIEnv * env,
const T & arr )
inline

◆ MakeJString()

jstring wpi::util::java::MakeJString ( JNIEnv * env,
std::string_view str )
inline

Convert a UTF8 string into a jstring.

Parameters
envJRE environment.
strString to convert.

◆ MakeJStringArray() [1/2]

jobjectArray wpi::util::java::MakeJStringArray ( JNIEnv * env,
std::span< const std::string > arr )
inline

Convert an array of std::string into a jarray of jstring.

Parameters
envJRE environment.
arrArray to convert.

◆ MakeJStringArray() [2/2]

jobjectArray wpi::util::java::MakeJStringArray ( JNIEnv * env,
std::span< std::string_view > arr )
inline

Convert an array of std::string into a jarray of jstring.

Parameters
envJRE environment.
arrArray to convert.