DEFINE CLASS()

From Lianjapedia
Jump to: navigation, search

PURPOSE

A macro to define a class

SYNONYM

None

SYNOPSIS

#include "lianja_api.h"
 
DEFINE_CLASS(classname)
 
<input parameters>
constant		classname;	/* Class name 	*/
 
<output parameters>
none

DESCRIPTION

The DEFINE_CLASS() macro is used to define a class that can be accessed from Lianja. This class needs to be added to the API_SHARED_FUNCTION_TABLE data structure which is loaded dynamically when Lianja is started.

EXAMPLE

The following example defines a class called clsMyClass and defines some dispatch methods.

Example Lianja script:

// The constructor is called when the object is created
test = newobject("myclass") 
? type("test")

</code>

Example in 'C' object:

#include "lianja_api.h"
 
static	struct	API_SHARED_FUNCTION_TABLE api_function_table[2] = {
	{"myclass", "clsMyClass",		API_CLASS},
	{NULL,		NULL,			-1}
} ;
 
DEFINE_CLASS(clsMyClass)
{
	/* Dispatch factory methods and return */
	DISPATCH_FACTORY();
 
	/* Dispatch constructor and return */
	DISPATCH_METHOD(clsMyClass, Constructor);
 
	/* Dispatch destructor and return */
	DISPATCH_METHOD(clsMyClass, Destructor);
}

SEE ALSO

DEFINE_METHOD(), DEFINE_PROPERTYGET(), DEFINE_PROPERTYSET(), DISPATCH_FACTORY(), DISPATCH_METHOD(), DISPATCH_PROPGET(), DISPATCH_PROPSET(), OBJECT_ASSIGN(), OBJECT_DELETE(), OBJECT_GETARG(), OBJECT_GETARGC(), OBJECT_GETDATA(), OBJECT_GETOBJECT(), OBJECT_GETPARAMETER(), OBJECT_GETPROPERTY(), OBJECT_GETTYPE(), OBJECT_GETVALUE(), OBJECT_NEW(), OBJECT_RETERROR(), OBJECT_RETPROPERTY(), OBJECT_RETRESULT(), OBJECT_SETARG(), OBJECT_SETDATA(), OBJECT_SETPROPERTY()