The open source OpenXR runtime
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