Zen API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kApiDef.h File Reference

Description

Core Zen type declarations.

Go to the source code of this file.

Macros

#define kAbs_(A)   kxAbs_(A)
 Returns the absolute value of a number. More...
 
#define kAddDependency(SYMBOL)   kAddDependency_(SYMBOL)
 Within an assembly definition, specifies a dependency on another assembly. More...
 
#define kAddEnumerator   kAddEnumerator_
 Within an enumeration type definition, indicates that an enumeration has the specified enumerator. More...
 
#define kAddField(VALUE, FIELD_TYPE, FIELD)   kAddField_(VALUE, FIELD_TYPE, FIELD)
 Within a structure type definition, indicates that a structure has the specified field. More...
 
#define kAddFlags(TYPE, FLAGS)   kAddFlags_(TYPE, FLAGS)
 Adds specific flags to type metadata. More...
 
#define kAddInterface(SYMBOL, IFACE)   kAddInterface_(SYMBOL, IFACE)
 Within a type definition, indicates that a type implements the specified interface. More...
 
#define kAddIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD)   kAddIVMethod_(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD)
 Within a type definition, indicates that a type implements the specified interface method. More...
 
#define kAddMethod(SYMBOL, METHOD)   kAddMethod_(SYMBOL, METHOD)
 Within a type definition, indicates that a type has the specified non-virtual method. More...
 
#define kAddPriority(SYMBOL)   kAddPriority_(SYMBOL)
 Within an assembly definition, indicates a requirement on static initialization order. More...
 
#define kAddType(SYMBOL)   kAddType_(SYMBOL)
 Within an assembly definition, adds a type to the assembly. More...
 
#define kAddVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD)   kAddVersion_(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD)
 Within a type definition, indicates that a type has the specified serialization version. More...
 
#define kAddVMethod(IN_TYPE, FROM_TYPE, METHOD)   kAddVMethod_(IN_TYPE, FROM_TYPE, METHOD)
 Within a type definition, indicates that a type overrides the specified virtual method. More...
 
#define kAssemblyOf(SYMBOL)   kAssemblyOf_(SYMBOL)
 Returns the kAssembly object associated with the specified assembly symbol. More...
 
#define kAssert(EXPRESSION)   kAssert_(EXPRESSION)
 Aborts execution if EXPRESSION is kFALSE. More...
 
#define kAssertType(OBJECT, SYMBOL)   kAssertType_(OBJECT, SYMBOL)
 Aborts execution if the type of the OBJECT argument is not equivalent to kTypeOf(SYMBOL). More...
 
#define kBeginArrayValue(PREFIX, SYMBOL, TYPE, BASE)   kBeginArrayValue_(PREFIX, SYMBOL, TYPE, BASE)
 Starts the definition of an array-based value type. More...
 
#define kBeginAssembly(PREFIX, SYMBOL, VERSION)   kBeginAssembly_(PREFIX, SYMBOL, VERSION)
 Starts the definition of a type assembly. More...
 
#define kBeginBitEnum(PREFIX, SYMBOL, BASE)   kBeginBitEnum_(PREFIX, SYMBOL, BASE)
 Starts the definition of a bit-flag enumeration value type. More...
 
#define kBeginClass(PREFIX, SYMBOL, BASE)   kBeginClass_(PREFIX, SYMBOL, BASE)
 Starts the definition of a class type that does not require an expanded vtable and does not have static data. More...
 
#define kBeginEnum(PREFIX, SYMBOL, BASE)   kBeginEnum_(PREFIX, SYMBOL, BASE)
 Starts the definition of an enumeration value type. More...
 
#define kBeginFullClass(PREFIX, SYMBOL, BASE)   kBeginFullClass_(PREFIX, SYMBOL, BASE)
 Starts the definition of a class type. More...
 
#define kBeginInterface(PREFIX, SYMBOL, BASE)   kBeginInterface_(PREFIX, SYMBOL, BASE)
 Starts the definition of an interface type. More...
 
#define kBeginStaticClass(PREFIX, SYMBOL)   kBeginStaticClass_(PREFIX, SYMBOL)
 Starts the definition of a class type that has only static data. More...
 
#define kBeginValue(PREFIX, SYMBOL, BASE)   kBeginValue_(PREFIX, SYMBOL, BASE)
 Starts the definition of a structure value type. More...
 
#define kBeginVirtualClass(PREFIX, SYMBOL, BASE)   kBeginVirtualClass_(PREFIX, SYMBOL, BASE)
 Starts the definition of a class type that requires an expanded vtable but does not have static data. More...
 
#define kCall   kxCall
 kApi standard function calling convention.
 
#define kCast(TYPE, ITEM)   kCast_(TYPE, ITEM)
 Casts the ITEM argument to the specified TYPE. More...
 
#define kCatch(STATUS_POINTER)   kCatch_(STATUS_POINTER)
 Closes a kTry block and opens a kCatch error-handling block. More...
 
#define kCatchEx(STATUS_POINTER)   kCatchEx_(STATUS_POINTER)
 Closes a kTry block and opens a kCatchEx error-handling block. More...
 
#define kCheck(EXPRESSION)   kCheck_(EXPRESSION)
 Executes a return statement if the given expression is not kOK. More...
 
#define kCheckArgs(EXPRESSION)   kCheckArgs_(EXPRESSION)
 Executes a return statement if the given expression is not kTRUE. More...
 
#define kCheckState(EXPRESSION)   kCheckState_(EXPRESSION)
 Executes a return statement if the given expression is not kTRUE. More...
 
#define kClamp_(V, VMIN, VMAX)   kxClamp_((V), (VMIN), (VMAX))
 Returns a value limited to the specified range. More...
 
#define kCountOf(CARRAY)   kCountOf_(CARRAY)
 Returns the number of elements in a C array. More...
 
#define kDeclareArrayValue(PREFIX, SYMBOL, BASE)   kDeclareArrayValue_(PREFIX, SYMBOL, BASE)
 Declares type information for an array-based value type. More...
 
#define kDeclareAssembly(PREFIX, SYMBOL)   kDeclareAssembly_(PREFIX, SYMBOL)
 Declares a type assembly. More...
 
#define kDeclareBitEnum(PREFIX, SYMBOL, BASE)   kDeclareBitEnum_(PREFIX, SYMBOL, BASE)
 Declares type information for a bit-flag enumeration value type. More...
 
#define kDeclareClass(PREFIX, SYMBOL, BASE)   kDeclareClass_(PREFIX, SYMBOL, BASE)
 Declares type information for a class type that does not require an expanded vtable and does not have static data. More...
 
#define kDeclareEnum(PREFIX, SYMBOL, BASE)   kDeclareEnum_(PREFIX, SYMBOL, BASE)
 Declares type information for an enumeration value type. More...
 
#define kDeclareFullClass(PREFIX, SYMBOL, BASE)   kDeclareFullClass_(PREFIX, SYMBOL, BASE)
 Declares type information for a class type. More...
 
#define kDeclareInterface(PREFIX, SYMBOL, BASE)   kDeclareInterface_(PREFIX, SYMBOL, BASE)
 Declares type information for an interface type. More...
 
#define kDeclareStaticClass(PREFIX, SYMBOL)   kDeclareStaticClass_(PREFIX, SYMBOL)
 Declares type information for a class type that has only static data. More...
 
#define kDeclareValue(PREFIX, SYMBOL, BASE)   kDeclareValue_(PREFIX, SYMBOL, BASE)
 Declares type information for a structure value type. More...
 
#define kDeclareVirtualClass(PREFIX, SYMBOL, BASE)   kDeclareVirtualClass_(PREFIX, SYMBOL, BASE)
 Declares type information for a class type that requires an expanded vtable but does not have static data. More...
 
#define kDefineDebugHints()   kDefineDebugHints_()
 The kDefineDebugHints macro can be helpful when attempting to use debug expressions to peek inside kApi class implementations in Visual Studio. More...
 
#define kDlCall   kxDlCall
 kApi dynamic load function calling convention.
 
#define kEndArrayValue()   kEndArrayValue_()
 Ends the definition of an array-based value type. More...
 
#define kEndAssembly()   kEndAssembly_()
 Ends the definition of a type assembly. More...
 
#define kEndBitEnum()   kEndBitEnum_()
 Ends the definition of a bit-flag enumeration value type. More...
 
#define kEndCatch(STATUS)   kEndCatch_(STATUS)
 Closes a kCatch block. More...
 
#define kEndCatchEx(STATUS)   kEndCatchEx_(STATUS)
 Closes a kCatchEx block. More...
 
#define kEndClass()   kEndClass_()
 Ends the definition of a class type that does not require an expanded vtable and does not have static data. More...
 
#define kEndEnum()   kEndEnum_()
 Ends the definition of an enumeration value type. More...
 
#define kEndFinally()   kEndFinally_()
 Closes a kFinally block. More...
 
#define kEndFinallyEx()   kEndFinallyEx_()
 Closes a kFinallyEx block. More...
 
#define kEndFullClass()   kEndFullClass_()
 Ends the definition of a class type. More...
 
#define kEndInterface()   kEndInterface_()
 Ends the definition of an interface type. More...
 
#define kEndStaticClass()   kEndStaticClass_()
 Ends the definition of a class type that has only static data. More...
 
#define kEndValue()   kEndValue_()
 Ends the definition of a structure value type. More...
 
#define kEndVirtualClass()   kEndVirtualClass_()
 Ends the definition of a class type that requires an expanded vtable but does not have static data. More...
 
#define kFinally   kFinally_
 Closes a kTry block and opens a kFinally block. More...
 
#define kFinallyEx   kFinallyEx_
 Opens a kFinallyEx block. More...
 
#define kIsError(EXPRESSION)   kIsError_(EXPRESSION)
 Returns kTRUE if the given status value is not kOK. More...
 
#define kIsNull(POINTER)   kIsNull_(POINTER)
 Tests for equality with null pointer. More...
 
#define kItemAt_(BASE, INDEX, SIZE)   kAt_((BASE), (INDEX)*(SIZE))
 Gets a pointer to the Nth element of an array. More...
 
#define kItemCopy_(DEST, SRC, SIZE)   kxItemCopy_(DEST, SRC, SIZE)
 Performs a small copy with minimal overhead. More...
 
#define kItemSet_(DEST, FILL, SIZE)   kxItemSet_(DEST, FILL, SIZE)
 Performs a small fill with minimal overhead. More...
 
#define kItemZero_(DEST, SIZE)   kItemSet_(DEST, 0, SIZE)
 Zero-initializes a small amount of memory with minimal overhead. More...
 
#define kMax_(A, B)   kxMax_(A, B)
 Returns the maximum of two numbers. More...
 
#define kMin_(A, B)   kxMin_(A, B)
 Returns the minimum of two numbers. More...
 
#define kNULL   (0)
 Null pointer.
 
#define kPoint3d_Init_(POINT, X, Y, Z)   kxPoint3d_Init_(POINT, X, Y, Z)
 Initializes a 3d point structure. More...
 
#define kPoint_Init_(POINT, X, Y)   kxPoint_Init_(POINT, X, Y)
 Initializes a point structure. More...
 
#define kRect3d_Init_(RECT, X, Y, Z, W, H, D)   kxRect3d_Init_(RECT, X, Y, Z, W, H, D)
 Initializes a rectangular cuboid structure. More...
 
#define kRect_Init_(RECT, X, Y, W, H)   kxRect_Init_(RECT, X, Y, W, H)
 Initializes a rectangle structure. More...
 
#define kRotatedRect_Init_(RECT, XC, YC, W, H, A)   kxRotatedRect_Init_(RECT, XC, YC, W, H, A)
 Initializes a rotated rectangle structure. More...
 
#define kStaticInitialized(SYMBOL)   kStaticInitialized_(SYMBOL)
 Indicates whether static initialization has completed for the specified type symbol. More...
 
#define kStaticOf(SYMBOL)   kStaticOf_(SYMBOL)
 Returns static data associated with the specified class symbol. More...
 
#define kSuccess(EXPRESSION)   kSuccess_(EXPRESSION)
 Returns kTRUE if the given expression value is kOK. More...
 
#define kTest(EXPRESSION)   kTest_(EXPRESSION)
 Used within a kTry block to conditionally jump to the first error handling block (e.g. More...
 
#define kTestArgs(EXPRESSION)   kTestArgs_(EXPRESSION)
 Within a kTry block, throws kERROR_PARAMETER if the expression result is kFALSE. More...
 
#define kTestState(EXPRESSION)   kTestState_(EXPRESSION)
 Within a kTry block, throws kERROR_STATE if the expression result is kFALSE. More...
 
#define kThrow(EXPRESSION)   kThrow_(EXPRESSION)
 Used within a kTry block to jump to the first error handling block (e.g. More...
 
#define kTrace(TAG)   kTrace_(TAG)
 Generates a trace event using the given tag (string literals only). More...
 
#define kTry   kTry_
 Opens a kTry error-checking block. More...
 
#define kTypeOf(SYMBOL)   kTypeOf_(SYMBOL)
 Returns the kType object associated with the specified class, interface, or value symbol. More...
 
#define kZero_(VALUE)   kxZero_(VALUE)
 Sets all bits of a structure to zero. More...
 

Typedefs

typedef kStatus(kCallkCallbackFx )(kPointer receiver, kPointer sender, void *args)
 Callback signature for a generic event handler. More...
 
typedef kBool(kCallkEqualsFx )(const void *item1, const void *item2)
 Callback signature to determine equality of two items. More...
 
typedef void(kCallkFunction )()
 Generic pointer to function.
 
typedef kSize(kCallkHashFx )(const void *item)
 Callback signature to determine hash code of an item. More...