Type Conversion

Type Conversion — Moving between JavaScript and C intrinsic types

Functions

Types and Values

typedef SeedValue
enum SeedType
typedef SeedString

Includes

#include <seed/seed.h>

Description

Long description

Functions

seed_make_undefined ()

SeedValue
seed_make_undefined (SeedContext ctx);

Note that this function returns a valid SeedValue, representing the undefined JavaScript value, and not an undefined SeedValue.

Parameters

ctx

A valid SeedContext

 

Returns

A SeedValue of the 'undefined' type.


seed_make_null ()

SeedValue
seed_make_null (SeedContext ctx);

Note that this function returns a valid SeedValue, representing the null JavaScript value, and not a null SeedValue.

Parameters

ctx

A valid SeedContext

 

Returns

A SeedValue of the 'null' type.


seed_value_to_boolean ()

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

Converts the given SeedValue into a gboolean. Keep in mind that this will not convert a JavaScript number type, only a boolean.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gboolean represented by val .


seed_value_from_boolean ()

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

Converts the given gboolean into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gboolean to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_uint ()

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

Converts the given SeedValue into a guint.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The guint represented by val .


seed_value_from_uint ()

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

Converts the given guint into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The guint to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_int ()

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

Converts the given SeedValue into a gint.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gint represented by val .


seed_value_from_int ()

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

Converts the given gint into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gint to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_char ()

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

Converts the given SeedValue into a gchar.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gchar represented by val .


seed_value_from_char ()

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

Converts the given gchar into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gchar to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_uchar ()

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

Converts the given SeedValue into a guchar.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The guchar represented by val .


seed_value_from_uchar ()

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

Converts the given guchar into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The guchar to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_long ()

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

Converts the given SeedValue into a glong.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The glong represented by val .


seed_value_from_long ()

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

Converts the given glong into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The glong to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_ulong ()

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

Converts the given SeedValue into a gulong.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gulong represented by val .


seed_value_from_ulong ()

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

Converts the given gulong into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gulong to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_int64 ()

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

Converts the given SeedValue into a gint64.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gint64 represented by val .


seed_value_from_int64 ()

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

Converts the given gint64 into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gint64 to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_uint64 ()

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

Converts the given SeedValue into a guint64.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The guint64 represented by val .


seed_value_from_uint64 ()

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

Converts the given guint64 into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The guint64 to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_float ()

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

Converts the given SeedValue into a gfloat.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gfloat represented by val .


seed_value_from_float ()

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

Converts the given gfloat into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gfloat to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_double ()

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

Converts the given SeedValue into a gdouble.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gdouble represented by val .


seed_value_from_double ()

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

Converts the given gdouble into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gdouble to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_string ()

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

Converts the given SeedValue into a gchar* string. Keep in mind that it's up to the caller to free the string.

If the SeedValue represents JavaScript's undefined value, this returns "[undefined]"; if it represents JavaScript's null value, this returns "[null]".

If the SeedValue is a number or a boolean, it is printed as a double, with the printf format string "%.15g".

If the SeedValue is an object, the string returned is that obtained by calling .toString() on said object.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gchar* represented by val .


seed_value_from_string ()

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

Converts the given gchar* string into a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The gchar* to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_from_binary_string ()

SeedValue
seed_value_from_binary_string (SeedContext ctx,
                               const gchar *bytes,
                               gint n_bytes,
                               SeedException *exception);

Converts a string representation of the given binary string into a SeedValue.

FIXME - should use BinaryArray really

Parameters

ctx

A SeedContext.

 

bytes

A string of bytes to represent as a string.

 

n_bytes

The number of bytes from bytes to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents bytes as a string.


seed_value_to_object ()

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

Given a SeedValue which is wrapping a GObject, retrieve the wrapped GObject.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to unwrap.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The GObject wrapped within val , or NULL if an exception is raised during the conversion.


seed_value_from_object ()

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

Wraps val in a SeedValue.

Parameters

ctx

A SeedContext.

 

val

The GObject to wrap.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which wraps val .


seed_value_to_filename ()

gchar *
seed_value_to_filename (SeedContext ctx,
                        SeedValue val,
                        SeedValue *exception);

Converts the given SeedValue into a gchar*, properly converting to the character set used for filenames on the local machine.

Parameters

ctx

A SeedContext.

 

val

The SeedValue to convert.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

The gchar* represented by val , or NULL if an exception is raised during the conversion.


seed_value_from_filename ()

SeedValue
seed_value_from_filename (SeedContext ctx,
                          SeedValue val,
                          SeedValue *exception);

Converts the given gchar* filename into a SeedValue, respecting the character set used for filenames on the local machine.

Parameters

ctx

A SeedContext.

 

val

The gchar* filename to represent.

 

exception

A reference to a SeedValue in which to store any exceptions. Pass NULL to ignore exceptions.

 

Returns

A SeedValue which represents val .


seed_value_to_format ()

gboolean
seed_value_to_format (SeedContext ctx,
                      const gchar *format,
                      SeedValue *values,
                      SeedValue *exception,
                      ...);

A convenience API for converting multiple values at once, the format string is composed of single characters specifying types, for example: i: gint u: guint o: GObject * s: gchar * f: gdouble c: gchar

and a valid format string could be "iuo".

This function may be in particular useful in converting arguments in a SeedFunctionCallback.

Parameters

ctx

A valid SeedContext

 

format

Format string to use.

 

values

The values to convert.

 

exception

Location to store an exception.

 

Returns

Whether conversion was successful.


seed_pointer_get_pointer ()

gpointer
seed_pointer_get_pointer (SeedContext ctx,
                          SeedValue pointer);


seed_make_pointer ()

SeedValue
seed_make_pointer (SeedContext ctx,
                   gpointer pointer);


seed_string_ref ()

SeedString
seed_string_ref (SeedString string);

Increments the reference count of string .

Parameters

string

A SeedString.

 

Returns

string


seed_string_unref ()

void
seed_string_unref (SeedString string);

Decrements the reference count of string .

Parameters

string

A SeedString.

 

seed_string_get_maximum_size ()

gsize
seed_string_get_maximum_size (SeedString string);

Parameters

string

A SeedString.

 

Returns

The maximum number of bytes string will take up if converted to a null-terminated UTF8 string.


seed_string_to_utf8_buffer ()

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

Parameters

string

A SeedString.

 

buffer

An allocated string.

 

buffer_size

The length of buffer , in bytes.

 

Returns

A the number of bytes copied into buffer .


seed_string_is_equal ()

gboolean
seed_string_is_equal (SeedString a,
                      SeedString b);

Parameters

a

The first SeedString to compare.

 

b

The second SeedString to compare.

 

Returns

true, if a and b are equal, false otherwise.


seed_string_is_equal_utf8 ()

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

Tests the equality of a SeedString and a UTF-8 C-style string.

Parameters

a

The SeedString to compare.

 

b

A gchar* to compare to.

 

Returns

true, if a and b are equal, false otherwise.

Types and Values

SeedValue

typedef gpointer SeedValue;


enum SeedType

Members

SEED_TYPE_UNDEFINED

   

SEED_TYPE_NULL

   

SEED_TYPE_BOOLEAN

   

SEED_TYPE_NUMBER

   

SEED_TYPE_STRING

   

SEED_TYPE_OBJECT

   

SeedString

typedef gpointer SeedString;