Seed API

Seed API — The external API of libseed. Used for embedding Seed in your applications, or writing a Seed C extension module.

Synopsis

typedef             SeedString;
typedef             SeedValue;
typedef             SeedObject;
typedef             SeedClass;
typedef             SeedException;
typedef             SeedContext;
typedef             SeedGlobalContext;
typedef             SeedContextGroup;
enum                SeedType;
enum                SeedPropertyAttributes;
enum                SeedClassAttributes;
                    SeedScript;
                    SeedEngine;
SeedEngine *        seed_init                           (gint *argc,
                                                         gchar ***argv);
SeedScript *        seed_make_script                    (SeedContext ctx,
                                                         const gchar *s,
                                                         const gchar *source_url,
                                                         gint line_number);
SeedException       seed_script_exception               (SeedScript *s);
void                seed_make_exception                 (SeedContext ctx,
                                                         SeedException e,
                                                         gchar *name,
                                                         gchar *message);
gchar *             seed_exception_get_name             (SeedContext ctx,
                                                         SeedException e);
gchar *             seed_exception_get_message          (SeedContext ctx,
                                                         SeedException e);
guint               seed_exception_get_line             (SeedContext ctx,
                                                         SeedException e);
gchar *             seed_exception_get_file             (SeedContext ctx,
                                                         SeedException e);
gchar *             seed_exception_to_string            (SeedContext ctx,
                                                         SeedException e);
SeedValue           seed_evaluate                       (SeedContext ctx,
                                                         SeedScript *s,
                                                         SeedObject this);
SeedGlobalContext   seed_context_create                 (SeedContextGroup group,
                                                         SeedClass global_class);
SeedGlobalContext   seed_context_ref                    (SeedGlobalContext ctx);
void                seed_context_unref                  (SeedGlobalContext ctx);
SeedValue           seed_make_null                      (SeedContext ctx);
SeedObject          seed_make_object                    (SeedContext ctx,
                                                         SeedClass class,
                                                         gpointer private);
gpointer            seed_object_get_private             (SeedObject object);
void                seed_object_set_private             (SeedObject object,
                                                         gpointer value);
SeedString          seed_string_ref                     (SeedString string);
void                seed_string_unref                   (SeedString string);
gsize               seed_string_get_maximum_size        (SeedString string);
gsize               seed_string_to_utf8_buffer          (SeedString string,
                                                         gchar *buffer,
                                                         size_t buffer_size);
gboolean            seed_string_is_equal                (SeedString a,
                                                         SeedString b);
gboolean            seed_string_is_equal_utf8           (SeedString a,
                                                         const gchar *b);
SeedValue           seed_object_call                    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedObject this,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);
void                seed_value_unprotect                (SeedContext ctx,
                                                         SeedValue value);
void                seed_value_protect                  (SeedContext ctx,
                                                         SeedValue value);
gboolean            seed_object_set_property            (SeedContext ctx,
                                                         SeedObject object,
                                                         const gchar *name,
                                                         SeedValue value);
SeedValue           seed_object_get_property            (SeedContext ctx,
                                                         SeedObject object,
                                                         const gchar *name);
void                seed_object_set_property_at_index   (SeedContext ctx,
                                                         SeedObject object,
                                                         gint index,
                                                         SeedValue value,
                                                         SeedException *exception);
gboolean            seed_value_to_boolean               (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_boolean             (SeedContext ctx,
                                                         gboolean val,
                                                         SeedException *exception);
guint               seed_value_to_uint                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_uint                (SeedContext ctx,
                                                         guint val,
                                                         SeedException *exception);
gint                seed_value_to_int                   (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_int                 (SeedContext ctx,
                                                         gint val,
                                                         SeedException *exception);
gchar               seed_value_to_char                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_char                (SeedContext ctx,
                                                         gchar val,
                                                         SeedException *exception);
guchar              seed_value_to_uchar                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_uchar               (SeedContext ctx,
                                                         guchar val,
                                                         SeedException *exception);
glong               seed_value_to_long                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_long                (SeedContext ctx,
                                                         glong val,
                                                         SeedException *exception);
gulong              seed_value_to_ulong                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_ulong               (SeedContext ctx,
                                                         gulong val,
                                                         SeedException *exception);
gint64              seed_value_to_int64                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_int64               (SeedContext ctx,
                                                         gint64 val,
                                                         SeedException *exception);
guint64             seed_value_to_uint64                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_uint64              (SeedContext ctx,
                                                         guint64 val,
                                                         SeedException *exception);
gfloat              seed_value_to_float                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_float               (SeedContext ctx,
                                                         gfloat val,
                                                         SeedException *exception);
gdouble             seed_value_to_double                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_double              (SeedContext ctx,
                                                         gdouble val,
                                                         SeedException *exception);
gchar *             seed_value_to_string                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_string              (SeedContext ctx,
                                                         gchar *val,
                                                         SeedException *exception);
GObject *           seed_value_to_object                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);
SeedValue           seed_value_from_object              (SeedContext ctx,
                                                         GObject *val,
                                                         SeedException *exception);
gpointer            seed_pointer_get_pointer            (SeedContext ctx,
                                                         SeedValue pointer);
void                (*SeedFunctionCallback)             (SeedContext ctx,
                                                         SeedObject function,
                                                         SeedObject this_object,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);
void                seed_create_function                (SeedContext ctx,
                                                         gchar *name,
                                                         SeedFunctionCallback callback,
                                                         SeedObject object);
void                (*SeedModuleInitCallback)           (SeedEngine *eng);
void                (*SeedObjectInitializeCallback)     (SeedContext ctx,
                                                         SeedObject object);
void                (*SeedObjectFinalizeCallback)       (SeedObject object);
gboolean            (*SeedObjectHasPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString string);
SeedValue           (*SeedObjectGetPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedException *e);
gboolean            (*SeedObjectSetPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedValue value,
                                                         SeedException *e);
gboolean            (*SeedObjectDeletePropertyCallback) (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedValue value,
                                                         SeedException *e);
void                (*SeedObjectGetPropertyNamesCallback)
                                                        (void);
SeedValue           (*SeedObjectCallAsFunctionCallback) (SeedContext ctx,
                                                         SeedObject function,
                                                         SeedObject this_object,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);
gboolean            (*SeedObjectHasInstanceCallback)    (SeedContext ctx,
                                                         SeedObject constructor,
                                                         SeedObject instance_p,
                                                         SeedException *exception);
SeedValue           (*SeedObjectConvertToTypeCallback)  (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedType type,
                                                         SeedException *exception);
SeedClass           seed_create_class                   (seed_class_definition *def);
SeedObject          seed_make_constructor               (SeedContext ctx,
                                                         SeedClass class,
                                                         SeedObjectCallAsConstructorCallbackconstructor );

Description

Details

SeedString

typedef gpointer SeedString;


SeedValue

typedef gpointer SeedValue;


SeedObject

typedef gpointer SeedObject;


SeedClass

typedef gpointer SeedClass;


SeedException

typedef gpointer SeedException;


SeedContext

typedef gpointer SeedContext;


SeedGlobalContext

typedef gpointer SeedGlobalContext;


SeedContextGroup

typedef gpointer SeedContextGroup;


enum SeedType

typedef enum {
	SEED_TYPE_UNDEFINED,
	SEED_TYPE_NULL,
	SEED_TYPE_BOOLEAN,
	SEED_TYPE_NUMBER,
	SEED_TYPE_STRING,
	SEED_TYPE_OBJECT
} SeedType;


enum SeedPropertyAttributes

typedef enum {
	SEED_PROPERTY_ATTRIBUTE_NONE = 0,
	SEED_PROPERTY_ATTRIBUTE_READ_ONLY = 1 << 1,
	SEED_PROPERTY_ATTRIBUTE_DONT_ENUM = 1 << 2,
	SEED_PROPERTY_ATTRIBUTE_DONT_DELETE = 1 << 3
} SeedPropertyAttributes;


enum SeedClassAttributes

typedef enum {
	SEED_CLASS_ATTRIBUTE_NONE = 0,
	SEED_CLASS_ATTRIBUTE_NO_SHARED_PROTOTYPE = 1 << 1
} SeedClassAttributes;


SeedScript

typedef struct _SeedScript SeedScript;


SeedEngine

typedef struct {
	SeedGlobalContext context;
	SeedValue global;

	SeedContextGroup group;
} SeedEngine;


seed_init ()

SeedEngine *        seed_init                           (gint *argc,
                                                         gchar ***argv);

argc :

argv :

Returns :


seed_make_script ()

SeedScript *        seed_make_script                    (SeedContext ctx,
                                                         const gchar *s,
                                                         const gchar *source_url,
                                                         gint line_number);

ctx :

s :

source_url :

line_number :

Returns :


seed_script_exception ()

SeedException       seed_script_exception               (SeedScript *s);

s :

Returns :


seed_make_exception ()

void                seed_make_exception                 (SeedContext ctx,
                                                         SeedException e,
                                                         gchar *name,
                                                         gchar *message);

ctx :

e :

name :

message :


seed_exception_get_name ()

gchar *             seed_exception_get_name             (SeedContext ctx,
                                                         SeedException e);

ctx :

e :

Returns :


seed_exception_get_message ()

gchar *             seed_exception_get_message          (SeedContext ctx,
                                                         SeedException e);

ctx :

e :

Returns :


seed_exception_get_line ()

guint               seed_exception_get_line             (SeedContext ctx,
                                                         SeedException e);

ctx :

e :

Returns :


seed_exception_get_file ()

gchar *             seed_exception_get_file             (SeedContext ctx,
                                                         SeedException e);

ctx :

e :

Returns :


seed_exception_to_string ()

gchar *             seed_exception_to_string            (SeedContext ctx,
                                                         SeedException e);

ctx :

e :

Returns :


seed_evaluate ()

SeedValue           seed_evaluate                       (SeedContext ctx,
                                                         SeedScript *s,
                                                         SeedObject this);

ctx :

s :

this :

Returns :


seed_context_create ()

SeedGlobalContext   seed_context_create                 (SeedContextGroup group,
                                                         SeedClass global_class);

group :

global_class :

Returns :


seed_context_ref ()

SeedGlobalContext   seed_context_ref                    (SeedGlobalContext ctx);

ctx :

Returns :


seed_context_unref ()

void                seed_context_unref                  (SeedGlobalContext ctx);

ctx :


seed_make_null ()

SeedValue           seed_make_null                      (SeedContext ctx);

ctx :

Returns :


seed_make_object ()

SeedObject          seed_make_object                    (SeedContext ctx,
                                                         SeedClass class,
                                                         gpointer private);

ctx :

class :

private :

Returns :


seed_object_get_private ()

gpointer            seed_object_get_private             (SeedObject object);

object :

Returns :


seed_object_set_private ()

void                seed_object_set_private             (SeedObject object,
                                                         gpointer value);

object :

value :


seed_string_ref ()

SeedString          seed_string_ref                     (SeedString string);

string :

Returns :


seed_string_unref ()

void                seed_string_unref                   (SeedString string);

string :


seed_string_get_maximum_size ()

gsize               seed_string_get_maximum_size        (SeedString string);

string :

Returns :


seed_string_to_utf8_buffer ()

gsize               seed_string_to_utf8_buffer          (SeedString string,
                                                         gchar *buffer,
                                                         size_t buffer_size);

string :

buffer :

buffer_size :

Returns :


seed_string_is_equal ()

gboolean            seed_string_is_equal                (SeedString a,
                                                         SeedString b);

a :

b :

Returns :


seed_string_is_equal_utf8 ()

gboolean            seed_string_is_equal_utf8           (SeedString a,
                                                         const gchar *b);

a :

b :

Returns :


seed_object_call ()

SeedValue           seed_object_call                    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedObject this,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);

ctx :

object :

this :

argument_count :

arguments :

exception :

Returns :


seed_value_unprotect ()

void                seed_value_unprotect                (SeedContext ctx,
                                                         SeedValue value);

ctx :

value :


seed_value_protect ()

void                seed_value_protect                  (SeedContext ctx,
                                                         SeedValue value);

ctx :

value :


seed_object_set_property ()

gboolean            seed_object_set_property            (SeedContext ctx,
                                                         SeedObject object,
                                                         const gchar *name,
                                                         SeedValue value);

ctx :

object :

name :

value :

Returns :


seed_object_get_property ()

SeedValue           seed_object_get_property            (SeedContext ctx,
                                                         SeedObject object,
                                                         const gchar *name);

ctx :

object :

name :

Returns :


seed_object_set_property_at_index ()

void                seed_object_set_property_at_index   (SeedContext ctx,
                                                         SeedObject object,
                                                         gint index,
                                                         SeedValue value,
                                                         SeedException *exception);

ctx :

object :

index :

value :

exception :


seed_value_to_boolean ()

gboolean            seed_value_to_boolean               (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_boolean ()

SeedValue           seed_value_from_boolean             (SeedContext ctx,
                                                         gboolean val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_uint ()

guint               seed_value_to_uint                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_uint ()

SeedValue           seed_value_from_uint                (SeedContext ctx,
                                                         guint val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_int ()

gint                seed_value_to_int                   (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_int ()

SeedValue           seed_value_from_int                 (SeedContext ctx,
                                                         gint val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_char ()

gchar               seed_value_to_char                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_char ()

SeedValue           seed_value_from_char                (SeedContext ctx,
                                                         gchar val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_uchar ()

guchar              seed_value_to_uchar                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_uchar ()

SeedValue           seed_value_from_uchar               (SeedContext ctx,
                                                         guchar val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_long ()

glong               seed_value_to_long                  (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_long ()

SeedValue           seed_value_from_long                (SeedContext ctx,
                                                         glong val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_ulong ()

gulong              seed_value_to_ulong                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_ulong ()

SeedValue           seed_value_from_ulong               (SeedContext ctx,
                                                         gulong val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_int64 ()

gint64              seed_value_to_int64                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_int64 ()

SeedValue           seed_value_from_int64               (SeedContext ctx,
                                                         gint64 val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_uint64 ()

guint64             seed_value_to_uint64                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_uint64 ()

SeedValue           seed_value_from_uint64              (SeedContext ctx,
                                                         guint64 val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_float ()

gfloat              seed_value_to_float                 (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_float ()

SeedValue           seed_value_from_float               (SeedContext ctx,
                                                         gfloat val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_double ()

gdouble             seed_value_to_double                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_double ()

SeedValue           seed_value_from_double              (SeedContext ctx,
                                                         gdouble val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_string ()

gchar *             seed_value_to_string                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_string ()

SeedValue           seed_value_from_string              (SeedContext ctx,
                                                         gchar *val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_to_object ()

GObject *           seed_value_to_object                (SeedContext ctx,
                                                         SeedValue val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_value_from_object ()

SeedValue           seed_value_from_object              (SeedContext ctx,
                                                         GObject *val,
                                                         SeedException *exception);

ctx :

val :

exception :

Returns :


seed_pointer_get_pointer ()

gpointer            seed_pointer_get_pointer            (SeedContext ctx,
                                                         SeedValue pointer);

ctx :

pointer :

Returns :


SeedFunctionCallback ()

void                (*SeedFunctionCallback)             (SeedContext ctx,
                                                         SeedObject function,
                                                         SeedObject this_object,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);

ctx :

function :

this_object :

argument_count :

arguments :

exception :


seed_create_function ()

void                seed_create_function                (SeedContext ctx,
                                                         gchar *name,
                                                         SeedFunctionCallback callback,
                                                         SeedObject object);

ctx :

name :

callback :

object :


SeedModuleInitCallback ()

void                (*SeedModuleInitCallback)           (SeedEngine *eng);

eng :


SeedObjectInitializeCallback ()

void                (*SeedObjectInitializeCallback)     (SeedContext ctx,
                                                         SeedObject object);

ctx :

object :


SeedObjectFinalizeCallback ()

void                (*SeedObjectFinalizeCallback)       (SeedObject object);

object :


SeedObjectHasPropertyCallback ()

gboolean            (*SeedObjectHasPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString string);

ctx :

object :

string :

Returns :


SeedObjectGetPropertyCallback ()

SeedValue           (*SeedObjectGetPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedException *e);

ctx :

object :

property_name :

e :

Returns :


SeedObjectSetPropertyCallback ()

gboolean            (*SeedObjectSetPropertyCallback)    (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedValue value,
                                                         SeedException *e);

ctx :

object :

property_name :

value :

e :

Returns :


SeedObjectDeletePropertyCallback ()

gboolean            (*SeedObjectDeletePropertyCallback) (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedString property_name,
                                                         SeedValue value,
                                                         SeedException *e);

ctx :

object :

property_name :

value :

e :

Returns :


SeedObjectGetPropertyNamesCallback ()

void                (*SeedObjectGetPropertyNamesCallback)
                                                        (void);


SeedObjectCallAsFunctionCallback ()

SeedValue           (*SeedObjectCallAsFunctionCallback) (SeedContext ctx,
                                                         SeedObject function,
                                                         SeedObject this_object,
                                                         gsize argument_count,
                                                         const SeedValue arguments[],
                                                         SeedException *exception);

ctx :

function :

this_object :

argument_count :

arguments :

exception :

Returns :


SeedObjectHasInstanceCallback ()

gboolean            (*SeedObjectHasInstanceCallback)    (SeedContext ctx,
                                                         SeedObject constructor,
                                                         SeedObject instance_p,
                                                         SeedException *exception);

ctx :

constructor :

instance_p :

exception :

Returns :


SeedObjectConvertToTypeCallback ()

SeedValue           (*SeedObjectConvertToTypeCallback)  (SeedContext ctx,
                                                         SeedObject object,
                                                         SeedType type,
                                                         SeedException *exception);

ctx :

object :

type :

exception :

Returns :


seed_create_class ()

SeedClass           seed_create_class                   (seed_class_definition *def);

def :

Returns :


seed_make_constructor ()

SeedObject          seed_make_constructor               (SeedContext ctx,
                                                         SeedClass class,
                                                         SeedObjectCallAsConstructorCallbackconstructor );

ctx :

class :

Param3 :

Returns :