Search in sources :

Example 66 with CEntryPoint

use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.

the class PolyglotNativeAPI method polyglot_value_is_null.

@CEntryPoint(name = "polyglot_value_is_null")
public static PolyglotStatus polyglot_value_is_null(IsolateThread isolate_thread, PolyglotValuePointer object, CIntPointer result) {
    return withHandledErrors(() -> {
        Value value = fetchHandle(object);
        result.write(value.isNull() ? 1 : 0);
    });
}
Also used : Value(org.graalvm.polyglot.Value) CEntryPoint(org.graalvm.nativeimage.c.function.CEntryPoint)

Example 67 with CEntryPoint

use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.

the class PolyglotNativeAPI method polyglot_create_uint32.

@SuppressWarnings("UnnecessaryBoxing")
@CEntryPoint(name = "polyglot_create_uint32")
public static PolyglotStatus polyglot_create_uint32(IsolateThread isolate_thread, PolyglotContextPointer polyglot_context, long value, PolyglotValuePointerPointer result) {
    return withHandledErrors(() -> {
        Context ctx = ObjectHandles.getGlobal().get(polyglot_context);
        result.write(createHandle(ctx.asValue(Long.valueOf(value))));
    });
}
Also used : CEntryPointContext(org.graalvm.nativeimage.c.function.CEntryPointContext) Context(org.graalvm.polyglot.Context) CEntryPoint(org.graalvm.nativeimage.c.function.CEntryPoint)

Example 68 with CEntryPoint

use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.

the class PolyglotNativeAPI method polyglot_value_as_int32.

@CEntryPoint(name = "polyglot_value_as_int32")
public static PolyglotStatus polyglot_value_as_int32(IsolateThread isolate_thread, PolyglotValuePointer value, CIntPointer result) {
    return withHandledErrors(() -> {
        Value valueObject = fetchHandle(value);
        result.write(valueObject.asInt());
    });
}
Also used : Value(org.graalvm.polyglot.Value) CEntryPoint(org.graalvm.nativeimage.c.function.CEntryPoint)

Example 69 with CEntryPoint

use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.

the class PolyglotNativeAPI method polyglot_create_context.

@CEntryPoint(name = "polyglot_create_context", documentation = { "Creates a context within an polyglot engine.", "Context holds all of the program data. Each context is by default isolated from all other contexts", "with respect to program data and evaluation semantics." })
public static PolyglotStatus polyglot_create_context(IsolateThread isolate_thread, PolyglotEnginePointer engine_handle, PolyglotContextPointerPointer context) {
    return withHandledErrors(() -> {
        Engine engine = ObjectHandles.getGlobal().get(engine_handle);
        Context c = Context.newBuilder().engine(engine).build();
        context.write(createHandle(c));
    });
}
Also used : CEntryPointContext(org.graalvm.nativeimage.c.function.CEntryPointContext) Context(org.graalvm.polyglot.Context) Engine(org.graalvm.polyglot.Engine) CEntryPoint(org.graalvm.nativeimage.c.function.CEntryPoint)

Example 70 with CEntryPoint

use of org.graalvm.nativeimage.c.function.CEntryPoint in project graal by oracle.

the class PolyglotNativeAPI method polyglot_create_string_utf8.

@CEntryPoint(name = "polyglot_create_string_utf8")
public static PolyglotStatus polyglot_create_string_utf8(IsolateThread isolate_thread, PolyglotContextPointer polyglot_context, CCharPointer value, UnsignedWord length, PolyglotValuePointerPointer result) {
    return withHandledErrors(() -> {
        Context ctx = ObjectHandles.getGlobal().get(polyglot_context);
        result.write(createHandle(ctx.asValue(CTypeConversion.toJavaString(value, length))));
    });
}
Also used : CEntryPointContext(org.graalvm.nativeimage.c.function.CEntryPointContext) Context(org.graalvm.polyglot.Context) CEntryPoint(org.graalvm.nativeimage.c.function.CEntryPoint)

Aggregations

CEntryPoint (org.graalvm.nativeimage.c.function.CEntryPoint)81 CEntryPointOptions (com.oracle.svm.core.c.function.CEntryPointOptions)26 Value (org.graalvm.polyglot.Value)23 CEntryPointContext (org.graalvm.nativeimage.c.function.CEntryPointContext)19 Context (org.graalvm.polyglot.Context)19 Uninterruptible (com.oracle.svm.core.annotate.Uninterruptible)7 ObjectHandle (org.graalvm.nativeimage.ObjectHandle)5 TruffleObject (com.oracle.truffle.api.interop.TruffleObject)4 CCharPointer (org.graalvm.nativeimage.c.type.CCharPointer)4 CIntPointer (org.graalvm.nativeimage.c.type.CIntPointer)4 JNIObjectHandle (com.oracle.svm.jni.nativeapi.JNIObjectHandle)3 PinnedObject (org.graalvm.nativeimage.PinnedObject)3 Log (com.oracle.svm.core.log.Log)2 JNIAccessibleMethodDescriptor (com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor)2 JNINativeLinkage (com.oracle.svm.jni.access.JNINativeLinkage)2 JNIMethodId (com.oracle.svm.jni.nativeapi.JNIMethodId)2 JNINativeMethod (com.oracle.svm.jni.nativeapi.JNINativeMethod)2 Executable (java.lang.reflect.Executable)2 Method (java.lang.reflect.Method)2 ByteBuffer (java.nio.ByteBuffer)2