sml/function.h File Reference

#include <sml/funcsig.h>
#include <sml/arg.h>
#include <sml/parm.h>
Include dependency graph for function.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SML::FUNC
 Structure for defining an SML function. More...
class  SML::FUNCDEF
 Structure for defining SML functions. More...

Namespaces

namespace  SML

Defines

#define RVCSYSLIBCLASSEXPORT   MI_DLLCLASSIMPORT
#define RVCSYSLIBEXPORT   MI_DLLIMPORT
#define SML_RETIRE_IN_68   "RetireIn6.8"
#define SML_RETIRE_IN_69   "RetireIn6.9"
#define SMLCLASSFUNCDEF2(func)   { #func, func##_FuncType, (VOIDFUNC)func, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }
#define SMLCLASSFUNCDEF3(func)   { func##_RealName, func##_FuncType, (VOIDFUNC)func, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }
#define SMLCLASSFUNCDEF_NOWIN32_NATIVE(func)   {#func, func##_FuncType, NULL, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), SMLFUNC_NotInWin32, SIG_OldStyle, 0, 0}
#define SMLFUNC_Deprecated   0x00000040
#define SMLFUNC_HasProtoParms   0x00000010
#define SMLFUNC_IsMemberFunc   0x00000004
#define SMLFUNC_NotInWin32   0x00000001
#define SMLFUNC_NotInX   0x00000002
#define SMLFUNC_Prototype   0x00000020
#define SMLFUNC_Required   0x00000080
#define SMLFUNC_UseSignature   0x00000008
#define SMLFUNCDEF2(func)   { #func, func##_FuncType, (VOIDFUNC)func, func##_Parms, NULL, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }
#define SMLFUNCDEF3(func)   {func##_RealName, func##_FuncType, (VOIDFUNC)func, func##_Parms, NULL, func##_CreateDate, func##_ModDate,0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0}
#define SMLFUNCDEF_NOWIN32_NATIVE(func)   {#func, func##_FuncType, NULL, func##_Parms, NULL, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), SMLFUNC_NotInWin32, SIG_OldStyle, 0, 0}

Typedefs

typedef void(SOMECLASS::* METHODPTR )()
typedef SML::FUNC SMLFUNC
typedef SML::FUNCDEF SMLFUNCDEF
typedef void(* VOIDFUNC )(int, SMLARG *, UINT8 *, SML::CONTEXT *)

Define Documentation

#define RVCSYSLIBCLASSEXPORT   MI_DLLCLASSIMPORT
#define RVCSYSLIBEXPORT   MI_DLLIMPORT
#define SML_RETIRE_IN_68   "RetireIn6.8"

Use this for the desciption field of any member or function that you want the documentation to show as being Deprecated.

The last two digits are the version in which the feature will no longer be guarenteed to be available.

#define SML_RETIRE_IN_69   "RetireIn6.9"
#define SMLCLASSFUNCDEF2 ( func   )     { #func, func##_FuncType, (VOIDFUNC)func, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }

Despite the name, these macros are older than SML::FUNCDEF, which is the new-and-improved way of defining these things.

#define SMLCLASSFUNCDEF3 ( func   )     { func##_RealName, func##_FuncType, (VOIDFUNC)func, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }
#define SMLCLASSFUNCDEF_NOWIN32_NATIVE ( func   )     {#func, func##_FuncType, NULL, func##_Parms, func##_RetVal, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), SMLFUNC_NotInWin32, SIG_OldStyle, 0, 0}
#define SMLFUNC_Deprecated   0x00000040
#define SMLFUNC_HasProtoParms   0x00000010
#define SMLFUNC_IsMemberFunc   0x00000004
#define SMLFUNC_NotInWin32   0x00000001

Possible flags for SMLFUNC.flags.

#define SMLFUNC_NotInX   0x00000002
#define SMLFUNC_Prototype   0x00000020
#define SMLFUNC_Required   0x00000080
#define SMLFUNC_UseSignature   0x00000008
#define SMLFUNCDEF2 ( func   )     { #func, func##_FuncType, (VOIDFUNC)func, func##_Parms, NULL, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0 }
#define SMLFUNCDEF3 ( func   )     {func##_RealName, func##_FuncType, (VOIDFUNC)func, func##_Parms, NULL, func##_CreateDate, func##_ModDate,0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), 0, SIG_OldStyle, 0, 0}

Special version for when we want to define an SML function with the same name as a C function, or with a name that is illegal for a C function (such as left$) We just name it whatever we want to and add the following.

#define sml_printf_RealName "printf"

#define SMLFUNCDEF_NOWIN32_NATIVE ( func   )     {#func, func##_FuncType, NULL, func##_Parms, NULL, func##_CreateDate, func##_ModDate, 0,0, NULL, sizeof(SML::FUNC), sizeof(SML::PARM), SMLFUNC_NotInWin32, SIG_OldStyle, 0, 0}

Typedef Documentation

typedef void(SOMECLASS::* METHODPTR)()
typedef SML::FUNC SMLFUNC
typedef void(* VOIDFUNC)(int, SMLARG *, UINT8 *, SML::CONTEXT *)

Use this to typecast your function pointer in the SMLFUNC strucure.

The actual function should return either void, double or (SMLSTRING *), depending on the value of type. If you don't typecast it, the compiler will hate you.


Generated on Sun Oct 7 21:31:39 2012 for TNTsdk 2012 by  doxygen 1.6.1