The open source OpenXR runtime
at prediction-2 55 lines 1.8 kB view raw
1// Copyright 2020-2021, Collabora, Ltd. 2// SPDX-License-Identifier: BSL-1.0 3// Author: Rylie Pavlik <rylie.pavlik@collabora.com> 4// Inline implementations: do not include on its own! 5 6#pragma once 7 8#include <string> 9 10namespace wrap { 11namespace java::lang { 12inline Class Class::forName(std::string const &name) { 13 return Class( 14 Meta::data().clazz().call<jni::Object>(Meta::data().forName, name)); 15} 16 17inline Class Class::forName(std::string const &name, bool initialize, 18 ClassLoader const &classLoader) { 19 return Class(Meta::data().clazz().call<jni::Object>( 20 Meta::data().forName1, name, initialize, classLoader.object())); 21} 22 23inline Class Class::forName(jstring name, bool initialize, 24 jni::Object classLoader) { 25 return Class{Meta::data().clazz().call<jni::Object>( 26 Meta::data().forName, name, initialize, classLoader)}; 27} 28 29inline std::string Class::getCanonicalName() { 30 assert(!isNull()); 31 return object().call<std::string>(Meta::data().getCanonicalName); 32} 33 34inline Class ClassLoader::loadClass(std::string const &name) { 35 assert(!isNull()); 36 return Class(object().call<jni::Object>(Meta::data().loadClass, name)); 37} 38 39inline Class ClassLoader::loadClass(jstring name) { 40 assert(!isNull()); 41 return Class{object().call<jni::Object>(Meta::data().loadClass, name)}; 42} 43 44inline std::string ClassLoader::findLibrary(std::string const &name) { 45 assert(!isNull()); 46 return object().call<std::string>(Meta::data().findLibrary, name); 47} 48 49inline std::string System::mapLibraryName(std::string const &name) { 50 return Meta::data().clazz().call<std::string>(Meta::data().mapLibraryName, 51 name); 52} 53 54} // namespace java::lang 55} // namespace wrap