scpt_objtype
This struct is defined as follows:
struct scpt_obj_method { char *name; scpt_function func; }; /** Defines a "class" of object * * @since 3.0 */ struct _scpt_objtype { /** ABI safety; must be sizeof(scpt_objtype) */ unsigned sizeof_scpt_objtype; /** the name of the type */ char *type_name; /** action to perform when an object handle wrapper is created, * such as bumping a refcount on the underlying object. * This is passed through to a call to luaL_registerptrtype as * the pushfunc parameter */ void (*on_create)(scpt_thread *L, void *ptr); /** action to perform when an object handle wrapper is garbage * collected by lua, such as decrementing a refcount. * This a scpt_function and is set directly as the __gc metatable * method on the associated metatable */ int (*on_gc)(scpt_thread *L); /** points to an array of method structs, terminated by a method * struct with a NULL name. * If the first character of a name is the @ sign, then method is * assumed to be a getter, if the first character is the * sign, * then it is assumed to be a setter handler. */ struct scpt_obj_method *methods; /** any getter/setter methods are referenced by this hash for * faster runtime resolution by the __index handler for the * object. You must initialize this to NULL and allow the * runtime to populate it for you */ ec_hash_table *properties; /** this field exists to force the size of scpt_objtype to change * with respect to earlier versions. This will trigger the ABI * checking sanity check and cause older modules to panic on or * very close to startup */ int _abi_trick; };
To use this struct, include the file modules/scriptlets/ec_scriptlet.h
.
See Also
Chapter 42, Scriptlet (and Alerting) Functions “ec_hash_table” and “scpt_thread”