| Seed Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#include <seed/seed.h> SeedValue (*SeedFunctionCallback) (SeedContext ctx,SeedObject function,SeedObject this_object,gsize argument_count,const SeedValue arguments[],SeedException *exception); SeedObject seed_make_function (SeedContext ctx,SeedFunctionCallback func,const gchar *name); void seed_create_function (SeedContext ctx,gchar *name,SeedFunctionCallback func,SeedObject obj);
Exposing native C functions to JavaScript is one of the fundamental use cases for libseed when used in an embedding environment; if your application cannot be introspected, or you only have a small number of functions to expose, this is the simplest way to do that.
All native C callbacks should have the prototype of SeedFunctionCallback().
Example 10. Simple C program which embeds Seed with one exposed function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <glib.h> #include <seed.h> /* Our function, with the signature of SeedFunctionCallback(); say hello! */ SeedValue hello_world(SeedContext ctx, SeedObject function, SeedObject this_object, gsize argument_count, const SeedValue arguments[], SeedException *exception) { g_print("Hello, World!\n"); return seed_make_null(ctx); } int main(gint argc, gchar ** argv) { SeedEngine * eng; /* Initialize the Seed engine */ eng = seed_init(&argc, &argv); /* Expose a C function to JavaScript */ seed_create_function(eng->context, "hello_world", (SeedFunctionCallback)hello_world, eng->global); /* Call the newly created JavaScript function */ seed_simple_evaluate(eng->context, "hello_world()", NULL); return 0; } |
SeedValue (*SeedFunctionCallback) (SeedContext ctx,SeedObject function,SeedObject this_object,gsize argument_count,const SeedValue arguments[],SeedException *exception);
All native C function callbacks should use the prototype of SeedFunctionCallback.
|
A SeedContext |
|
The SeedObject representing the function |
|
The SeedObject representing the "this" object in the caller |
|
The number of arguments passed into the callback |
|
An array of SeedValues; the value of the arguments passed in |
|
A reference to a SeedException; use seed_make_exception() in order
to throw a JavaScript exception from the callback. |
Returns : |
The SeedValue to return to the caller |
SeedObject seed_make_function (SeedContext ctx,SeedFunctionCallback func,const gchar *name);
Creates a JavaScript object representing a first-class function; when
the function is called from JavaScript, func will be called.
|
A valid SeedContext |
|
A SeedFunctionCallback to implement the function. |
|
The name of the function (used in exceptions). |
Returns : |
A SeedObject representing the function |
void seed_create_function (SeedContext ctx,gchar *name,SeedFunctionCallback func,SeedObject obj);
Creates a JavaScript object representing a first-class function; when
the function is called from JavaScript, func will be called. Places
the created function as the property name on obj.
|
A valid SeedContext |
|
The name of the function (used in exceptions). |
|
A SeedFunctionCallback to implement the function. |
|
The SeedObject on which to put the function. |