sml/classmember.h File Reference

#include <mi32/stddefns.h>
#include <sml/stype.h>
Include dependency graph for classmember.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SML::CLASSMEMBER

Namespaces

namespace  SML

Defines

#define RVCSYSLIBCLASSEXPORT   MI_DLLCLASSIMPORT
#define RVCSYSLIBEXPORT   MI_DLLIMPORT
#define SMLCLASSMEMBER_ENUM_RO(smlname, Class, membername, subtype, enumname, mask, desc)   { smlname, STYPE_Enum, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, size, NULL, enumname, NULL, desc}
#define SMLCLASSMEMBER_ENUM_RW(smlname, Class, membername, subtype, enumname, mask, desc)   { smlname, STYPE_Enum, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, mask, NULL, enumname, NULL, desc}
#define SMLCLASSMEMBER_NUM_RO(smlname, Class, membername, subtype, desc)   { smlname, STYPE_Num, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_NUM_RW(smlname, Class, membername, subtype, desc)   { smlname, STYPE_Num, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_SMLFLAG_RO(smlname, Class, membername, subtype, smlflags, mask, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, size, NULL, NULL, smlflags, desc}
#define SMLCLASSMEMBER_SMLFLAG_RW(smlname, Class, membername, subtype, smlflags, mask, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, mask, NULL, NULL, smlflags, desc}
#define SMLCLASSMEMBER_STR_FIXEDSIZE_RO(smlname, Class, membername, subtype, sizeOf, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, sizeOf, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STR_FIXEDSIZE_RW(smlname, Class, membername, subtype, sizeOf, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, sizeOf, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STR_PTR_RO(smlname, Class, membername, subtype, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STR_PTR_RW(smlname, Class, membername, subtype, desc)   { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_INLINE_RO(smlname, Class, membername, classname, desc)   { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSReadOnly, NULL, classname, offsetof(Class, membername), 1, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_INLINE_RW(smlname, Class, membername, classname, desc)   { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, classname, offsetof(Class, membername), 1, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_PTR_RO(smlname, Class, membername, classname, desc)   { smlname, STYPE_ClassRef, SMLCLASSReadSimple, NULL, NULL, classname, offsetof(Class::membername), 0, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_PTR_RW(smlname, Class, membername, classname, desc)   { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, classname, offsetof(Class::membername), 0, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_UINT32FLAG_RO(smlname, Class, membername, flagval, invert, desc)   { smlname, STYPE_Num, SMLCLASSReadULONGFlag, NULL, NULL, classname, offsetof(Class, membername), flagval, invert, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_UINT32FLAG_RW(smlname, Class, membername, flagval, invert, desc)   { smlname, STYPE_Num, SMLCLASSReadULONGFlag, SMLCLASSWriteULONGFlag, NULL, classname, offsetof(Class, membername), flagval, invert, NULL, NULL, NULL, desc}
#define SMLCLASSMETHOD(func)   { #func, STYPE_Constant, NULL, NULL, &FUNC_##func }
#define SMLCLASSReadOnly   SML::CLASSReadOnly
#define SMLCLASSReadPassThrough   SML::CLASSReadPassThrough
#define SMLCLASSReadSimple   SML::CLASSReadSimple
#define SMLCLASSReadULONGFlag   SML::CLASSReadULONGFlag
#define SMLCLASSWriteSimple   SML::CLASSWriteSimple
#define SMLCLASSWriteTableNum   SML::CLASSWriteTableNum
#define SMLCLASSWriteULONGFlag   SML::CLASSWriteULONGFlag

Typedefs

typedef SML::CLASSMEMBER SMLCLASSMEMBER

Functions

RVCSYSLIBEXPORT void SML::CLASSReadOnly (CONTEXT *, CLASSMEMBER *, void *, ARG *)
void SML::CLASSReadPassThrough (CONTEXT *, CLASSMEMBER *, void *vdata, ARG *ret)
RVCSYSLIBEXPORT void SML::CLASSReadSimple (CONTEXT *, CLASSMEMBER *, void *, ARG *)
RVCSYSLIBEXPORT void SML::CLASSReadULONGFlag (CONTEXT *, CLASSMEMBER *, void *, ARG *)
RVCSYSLIBEXPORT void SML::CLASSWriteSimple (CONTEXT *, CLASSMEMBER *, void *, ARG *)
void SML::CLASSWriteTableNum (CONTEXT *context, CLASSMEMBER *member, void *vdata, ARG *arg)
RVCSYSLIBEXPORT void SML::CLASSWriteULONGFlag (CONTEXT *, CLASSMEMBER *, void *, ARG *)

Define Documentation

#define RVCSYSLIBCLASSEXPORT   MI_DLLCLASSIMPORT
#define RVCSYSLIBEXPORT   MI_DLLIMPORT
#define SMLCLASSMEMBER_ENUM_RO ( smlname,
Class,
membername,
subtype,
enumname,
mask,
desc   )     { smlname, STYPE_Enum, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, size, NULL, enumname, NULL, desc}

SMLFLAG flags (using named enums).

#define SMLCLASSMEMBER_ENUM_RW ( smlname,
Class,
membername,
subtype,
enumname,
mask,
desc   )     { smlname, STYPE_Enum, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, mask, NULL, enumname, NULL, desc}
#define SMLCLASSMEMBER_NUM_RO ( smlname,
Class,
membername,
subtype,
desc   )     { smlname, STYPE_Num, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}

!

WARNING: Experamental macros Macros for def'n of class members which are directly accessable. These macros take the following parameters... (not all macros take all parameters)

smlname : the name of the member as it will appear in sml (in quotes) Class : C++ class/struct name member : C++ class/struct member name subtype : An SML::CLASSMEMBER::TYPE value classname : For members which are classes themselves, this is the name of the member's class as it appears in SML (in quotes) size : Only needed for strings. Size of the string in BYTES flagval : For UINT32 Flags, a constant flag value to check for. invert : For UINT32 Flags. If 1, the SML meaning of the flag is opposite the meaning implied by flagval smlflags : For SML::FLAG: SML::FLAG array of flags enumname : For ENUM: name (in quotes) of ENUM list to lookup eg: "UNITS::Distance" Enums have the advantage that the can be defined in a central location and the list can be generated as-needed from some other source (like units.txt) mask : For SML::FLAG or ENUM: Optional bitmask to allow a subset of bits desc : Default description. This is used to build smlclass.txt

Macros for easy def'n of class members which are directly accessable

The macros exist in 2 flavors for each type of data: SMLCLASSMEMBER_XXXXX_RO : Read Only SMLCLASSMEMBER_XXXXX_RW : Read/Write

It is also possible to have class members which can only be written, but it requires more than the simple macro defn's here. For an example of such a class, see the COLOR class in qqstruct.c

The available datatypes are... SMLCLASSMEMBER_NUM_XX SMLCLASSMEMBER_STR_PTR_XX SMLCLASSMEMBER_STR_FIXEDSIZE_XX SMLCLASSMEMBER_STRUCT_PTR_XX SMLCLASSMEMBER_STRUCT_INLINE_XX SMLCLASSMEMBER_UINT32FLAG_XX SMLCLASSMEMBER_SMLFLAG_XX SMLCLASSMEMBER_ENUM_XX

#define SMLCLASSMEMBER_NUM_RW ( smlname,
Class,
membername,
subtype,
desc   )     { smlname, STYPE_Num, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_SMLFLAG_RO ( smlname,
Class,
membername,
subtype,
smlflags,
mask,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, size, NULL, NULL, smlflags, desc}

SMLFLAG flags.

#define SMLCLASSMEMBER_SMLFLAG_RW ( smlname,
Class,
membername,
subtype,
smlflags,
mask,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, mask, NULL, NULL, smlflags, desc}
#define SMLCLASSMEMBER_STR_FIXEDSIZE_RO ( smlname,
Class,
membername,
subtype,
sizeOf,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, sizeOf, NULL, NULL, NULL, desc}

String classes where the member is of a fixed size as part of the struct/class.

#define SMLCLASSMEMBER_STR_FIXEDSIZE_RW ( smlname,
Class,
membername,
subtype,
sizeOf,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, sizeOf, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STR_PTR_RO ( smlname,
Class,
membername,
subtype,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, NULL, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}

String classes where the member is a (char*) or (MIUNICODE*).

#define SMLCLASSMEMBER_STR_PTR_RW ( smlname,
Class,
membername,
subtype,
desc   )     { smlname, STYPE_String, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, NULL, offsetof(Class, membername), subtype, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_INLINE_RO ( smlname,
Class,
membername,
classname,
desc   )     { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSReadOnly, NULL, classname, offsetof(Class, membername), 1, 0, NULL, NULL, NULL, desc}

Member is a class, not a pointer to a class.

#define SMLCLASSMEMBER_STRUCT_INLINE_RW ( smlname,
Class,
membername,
classname,
desc   )     { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, classname, offsetof(Class, membername), 1, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_STRUCT_PTR_RO ( smlname,
Class,
membername,
classname,
desc   )     { smlname, STYPE_ClassRef, SMLCLASSReadSimple, NULL, NULL, classname, offsetof(Class::membername), 0, 0, NULL, NULL, NULL, desc}

Member is a pointer to a class/struct.

#define SMLCLASSMEMBER_STRUCT_PTR_RW ( smlname,
Class,
membername,
classname,
desc   )     { smlname, STYPE_ClassRef, SMLCLASSReadSimple, SMLCLASSWriteSimple, NULL, classname, offsetof(Class::membername), 0, 0, NULL, NULL, NULL, desc}
#define SMLCLASSMEMBER_UINT32FLAG_RO ( smlname,
Class,
membername,
flagval,
invert,
desc   )     { smlname, STYPE_Num, SMLCLASSReadULONGFlag, NULL, NULL, classname, offsetof(Class, membername), flagval, invert, NULL, NULL, NULL, desc}

Member which is a flag in an UINT32.

#define SMLCLASSMEMBER_UINT32FLAG_RW ( smlname,
Class,
membername,
flagval,
invert,
desc   )     { smlname, STYPE_Num, SMLCLASSReadULONGFlag, SMLCLASSWriteULONGFlag, NULL, classname, offsetof(Class, membername), flagval, invert, NULL, NULL, NULL, desc}
#define SMLCLASSMETHOD ( func   )     { #func, STYPE_Constant, NULL, NULL, &FUNC_##func }

The rest of the member struct gets filled in by the installer STYPE_Constant is wrong, but will also be replaced by installer.

#define SMLCLASSReadOnly   SML::CLASSReadOnly
#define SMLCLASSReadPassThrough   SML::CLASSReadPassThrough
#define SMLCLASSReadSimple   SML::CLASSReadSimple
#define SMLCLASSReadULONGFlag   SML::CLASSReadULONGFlag
#define SMLCLASSWriteSimple   SML::CLASSWriteSimple
#define SMLCLASSWriteTableNum   SML::CLASSWriteTableNum
#define SMLCLASSWriteULONGFlag   SML::CLASSWriteULONGFlag

Typedef Documentation


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