use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.
the class PolyglotNativeAPI method polyglot_lookup.
@CEntryPoint(name = "polyglot_lookup")
public static PolyglotStatus polyglot_lookup(IsolateThread isolate_thread, PolyglotContextPointer context, CCharPointer language, CCharPointer symbol_name, PolyglotValuePointerPointer symbol) {
return withHandledErrors(() -> {
Context jContext = ObjectHandles.getGlobal().get(context);
String symbolName = CTypeConversion.toJavaString(symbol_name);
String jLanguage = CTypeConversion.toJavaString(language);
Value resultSymbol = jContext.getBindings(jLanguage).getMember(symbolName);
if (resultSymbol == null) {
throw reportError("Symbol " + symbolName + " in language " + jLanguage + " not found.", PolyglotStatus.polyglot_generic_failure);
} else {
symbol.write(createHandle(resultSymbol));
}
});
}
use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.
the class PolyglotNativeAPI method polyglot_import_symbol.
@CEntryPoint(name = "polyglot_import_symbol")
public static PolyglotStatus polyglot_import_symbol(IsolateThread isolate_thread, PolyglotContextPointer context, CCharPointer symbol_name, PolyglotValuePointerPointer value) {
return withHandledErrors(() -> {
Context jContext = ObjectHandles.getGlobal().get(context);
String symbolName = CTypeConversion.toJavaString(symbol_name);
value.write(createHandle(jContext.getPolyglotBindings().getMember(symbolName)));
});
}
use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.
the class PolyglotNativeAPI method polyglot_create_boolean.
@CEntryPoint(name = "polyglot_create_boolean")
public static PolyglotStatus polyglot_create_boolean(IsolateThread isolate_thread, PolyglotContextPointer polyglot_context, boolean value, PolyglotValuePointerPointer result) {
return withHandledErrors(() -> {
Context ctx = ObjectHandles.getGlobal().get(polyglot_context);
result.write(createHandle(ctx.asValue(value)));
});
}
use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.
the class PolyglotNativeAPI method polyglot_set_member.
@CEntryPoint(name = "polyglot_set_member")
public static PolyglotStatus polyglot_set_member(IsolateThread isolate_thread, PolyglotValuePointer object, CCharPointer utf8_name, PolyglotValuePointer value) {
return withHandledErrors(() -> {
Value jObject = fetchHandle(object);
Value jValue = fetchHandle(value);
jObject.putMember(CTypeConversion.toJavaString(utf8_name), jValue);
});
}
use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.
the class PolyglotNativeAPI method polyglot_create_char.
@CEntryPoint(name = "polyglot_create_char")
public static PolyglotStatus polyglot_create_char(IsolateThread isolate_thread, PolyglotContextPointer polyglot_context, char c, PolyglotValuePointerPointer result) {
return withHandledErrors(() -> {
Context ctx = ObjectHandles.getGlobal().get(polyglot_context);
result.write(createHandle(ctx.asValue(c)));
});
}
Aggregations