Zen API

- Home
- Topics
- Types
- Files

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

## Description

Core Zen type declarations.

Go to the source code of this file.

## Macros
#define | kAbs_(A)
| Returns the absolute value of a number. More...
#define | kAddAbstractVersion(TYPE, FORMAT, FORMAT_VER, GUID)
| Within a type definition, indicates that type information can be serialized, but instances cannot. More...
#define | kAddDependency(SYMBOL)
| Within an assembly definition, specifies a dependency on another assembly. More...
#define | kAddEnumerator
| Within an enumeration type definition, indicates that an enumeration has the specified enumerator. More...
#define | kAddField(VALUE, FIELD_TYPE, FIELD)
| Within a structure type definition, indicates that a structure has the specified field. More...
#define | kAddFlags(TYPE, FLAGS)
| Adds specific flags to type metadata. More...
#define | kAddInterface(SYMBOL, IFACE)
| Within a type definition, indicates that a type implements the specified interface. More...
#define | 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)
| Within a type definition, indicates that a type has the specified non-virtual method. More...
#define | kAddPriority(SYMBOL)
| Within an assembly definition, indicates a requirement on static initialization order. More...
#define | kAddPrivateIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD)
| Within a type definition, indicates that a type implements the specified interface method with a private method. More...
#define | kAddPrivateVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD)
| Within a type definition, indicates that a type has the specified serialization version. More...
#define | kAddPrivateVMethod(IN_TYPE, FROM_TYPE, METHOD)
| Within a type definition, indicates that a type overrides the specified virtual method with a private method. More...
#define | kAddType(SYMBOL)
| Within an assembly definition, adds a type to the assembly. More...
#define | 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)
| Within a type definition, indicates that a type overrides the specified virtual method. More...
#define | kAssemblyOf(SYMBOL)
| Returns the kAssembly object associated with the specified assembly symbol. More...
#define | kAssert(EXPRESSION)
| Aborts execution if EXPRESSION is kFALSE. More...
#define | 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)
| Starts the definition of an array-based value type. More...
#define | kBeginArrayValueEx(PREFIX, SYMBOL, TYPE)
| Starts the definition of an array-based value type. More...
#define | kBeginAssembly(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION)
| Starts the definition of a type assembly. More...
#define | kBeginAssemblyEx(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION)
| Starts the definition of a type assembly. More...
#define | 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 | kBeginClassEx(PREFIX, SYMBOL)
| 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)
| Starts the definition of an enumeration value type. More...
#define | kBeginEnumEx(PREFIX, SYMBOL)
| Starts the definition of an enumeration value type. More...
#define | kBeginFullClass(PREFIX, SYMBOL, BASE)
| Starts the definition of a class type. More...
#define | kBeginFullClassEx(PREFIX, SYMBOL)
| Starts the definition of a class type. More...
#define | kBeginInterface(PREFIX, SYMBOL, BASE)
| Starts the definition of an interface type. More...
#define | kBeginInterfaceEx(PREFIX, SYMBOL)
| Starts the definition of an interface type. More...
#define | kBeginStaticClass(PREFIX, SYMBOL)
| Starts the definition of a class type that has only static data. More...
#define | kBeginStaticClassEx(PREFIX, SYMBOL)
| Starts the definition of a class type that has only static data. More...
#define | kBeginValue(PREFIX, SYMBOL, BASE)
| Starts the definition of a structure value type. More...
#define | kBeginValueEx(PREFIX, SYMBOL)
| Starts the definition of a structure value type. More...
#define | kBeginVirtualClass(PREFIX, SYMBOL, BASE)
| Starts the definition of a class type that requires an expanded vtable but does not have static data. More...
#define | kBeginVirtualClassEx(PREFIX, SYMBOL)
| Starts the definition of a class type that requires an expanded vtable but does not have static data. More...
#define | kCall
| kApi standard function calling convention.
#define | kCast(TYPE, ITEM)
| Casts the ITEM argument to the specified TYPE. More...
#define | kCastClass_(TYPE, OBJECT)
| Type-checks the specified object before returning a class-typed pointer to its implementation. More...
#define | kCastIVTable_(IFACE, OBJECT)
| Gets an interface virtual table pointer for the specified object. More...
#define | kCastVTable_(TYPE, OBJECT)
| Gets a virtual table pointer for the specified object. More...
#define | kCatch(STATUS_POINTER)
| Closes a kTry block and opens a kCatch error-handling block. More...
#define | kCatchEx(STATUS_POINTER)
| Closes a kTry block and opens a kCatchEx error-handling block. More...
#define | kCheck(EXPRESSION)
| Executes a return statement if the given expression is not kOK. More...
#define | kCheckArgs(EXPRESSION)
| Executes a return statement if the given expression is not kTRUE. More...
#define | kCheckState(EXPRESSION)
| Executes a return statement if the given expression is not kTRUE. More...
#define | kCheckTrue(EXPRESSION, STATUS)
| Executes a return statement if the given expression is kFALSE. More...
#define | kClamp_(V, VMIN, VMAX)
| Returns a value limited to the specified range. More...
#define | kCountOf(CARRAY)
| Returns the number of elements in a C array. More...
#define | kDebugBreak()
| Triggers a software breakpoint. More...
#define | kDeclareArrayValue(PREFIX, SYMBOL, BASE)
| Declares type information for an array-based value type. More...
#define | kDeclareArrayValueEx(PREFIX, SYMBOL, BASE)
| Declares type information for an array-based value type. More...
#define | kDeclareAssembly(PREFIX, SYMBOL)
| Declares a type assembly. More...
#define | kDeclareAssemblyEx(PREFIX, SYMBOL)
| Declares a type assembly. More...
#define | 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 | kDeclareClassEx(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)
| Declares type information for an enumeration value type. More...
#define | kDeclareEnumEx(PREFIX, SYMBOL, BASE)
| Declares type information for an enumeration value type. More...
#define | kDeclareFullClass(PREFIX, SYMBOL, BASE)
| Declares type information for a class type. More...
#define | kDeclareFullClassEx(PREFIX, SYMBOL, BASE)
| Declares type information for a class type. More...
#define | kDeclareInterface(PREFIX, SYMBOL, BASE)
| Declares type information for an interface type. More...
#define | kDeclareInterfaceEx(PREFIX, SYMBOL, BASE)
| Declares type information for an interface type. More...
#define | kDeclareStaticClass(PREFIX, SYMBOL)
| Declares type information for a class type that has only static data. More...
#define | kDeclareStaticClassEx(PREFIX, SYMBOL)
| Declares type information for a class type that has only static data. More...
#define | kDeclareValue(PREFIX, SYMBOL, BASE)
| Declares type information for a structure value type. More...
#define | kDeclareValueEx(PREFIX, SYMBOL, BASE)
| Declares type information for a structure value type. More...
#define | kDeclareVirtualClass(PREFIX, SYMBOL, BASE)
| Declares type information for a class type that requires an expanded vtable but does not have static data. More...
#define | kDeclareVirtualClassEx(PREFIX, SYMBOL, BASE)
| Declares type information for a class type that requires an expanded vtable but does not have static data. More...
#define | kDefineDebugHints()
| The kDefineDebugHints macro can be helpful when attempting to use debug expressions to peek inside kApi class implementations in Visual Studio. More...
#define | kDeprecate(SYMBOL)
| Adds a deprecation warning for the specified symbol. More...
#define | kDivideCeilInt_(A, B)
| Calculates the quotient of two signed integers, rounding up. More...
#define | kDivideCeilUInt_(A, B)
| Calculates the quotient of two unsigned integers, rounding up. More...
#define | kDivideFloorInt_(A, B)
| Calculates the quotient of two signed integers, rounding down. More...
#define | kDivideFloorUInt_(A, B)
| Calculates the quotient of two unsigned integers, rounding down. More...
#define | kDlCall
| kApi dynamic load function calling convention.
#define | kEndArrayValue()
| Ends the definition of an array-based value type. More...
#define | kEndArrayValueEx()
| Ends the definition of an array-based value type. More...
#define | kEndAssembly()
| Ends the definition of a type assembly. More...
#define | kEndAssemblyEx()
| Ends the definition of a type assembly. More...
#define | kEndCatch(STATUS)
| Closes a kCatch block. More...
#define | kEndCatchEx(STATUS)
| Closes a kCatchEx block. More...
#define | kEndClass()
| Ends the definition of a class type that does not require an expanded vtable and does not have static data. More...
#define | kEndClassEx()
| Ends the definition of a class type that does not require an expanded vtable and does not have static data. More...
#define | kEndEnum()
| Ends the definition of an enumeration value type. More...
#define | kEndEnumEx()
| Ends the definition of an enumeration value type. More...
#define | kEndFinally()
| Closes a kFinally block. More...
#define | kEndFinallyEx()
| Closes a kFinallyEx block. More...
#define | kEndFullClass()
| Ends the definition of a class type. More...
#define | kEndFullClassEx()
| Ends the definition of a class type. More...
#define | kEndInterface()
| Ends the definition of an interface type. More...
#define | kEndInterfaceEx()
| Ends the definition of an interface type. More...
#define | kEndStaticClass()
| Ends the definition of a class type that has only static data. More...
#define | kEndStaticClassEx()
| Ends the definition of a class type that has only static data. More...
#define | kEndValue()
| Ends the definition of a structure value type. More...
#define | kEndValueEx()
| Ends the definition of a structure value type. More...
#define | kEndVirtualClass()
| Ends the definition of a class type that requires an expanded vtable but does not have static data. More...
#define | kEndVirtualClassEx()
| Ends the definition of a class type that requires an expanded vtable but does not have static data. More...
#define | kFinally
| Closes a kTry block and opens a kFinally block. More...
#define | kFinallyEx
| Opens a kFinallyEx block. More...
#define | kInitFields(TYPE, OBJECT)
| Zero-initializes the instance fields of the specified object. More...
#define | kInlineFx(TYPE)
| Inline method declaration helper.
#define | kMax_(A, B)
| Returns the maximum of two numbers. More...
#define | kMin_(A, B)
| Returns the minimum of two numbers. More...
#define | kNULL
| Null pointer.
#define | kObj(TypeName_T, T_object)
| Declares a local "obj" (this-pointer) variable and initializes it from a type-checked object handle. More...
#define | kObjN(TypeName_T, VarName_obj, T_object)
| Declares a local this-pointer variable with a specified name and initializes it from a type-checked object handle. More...
#define | kObjNR(TypeName_T, VarName_obj, T_object)
| Declares a local this-pointer variable with a specified name and initializes it from an object handle, without type-checking. More...
#define | kObjR(TypeName_T, T_object)
| Declares a local "obj" (this-pointer) variable and initializes it from an object handle, without type-checking. More...
#define | kPoint3d_Init_(POINT, X, Y, Z)
| Initializes a 3d point structure. More...
#define | kPoint_Init_(POINT, X, Y)
| Initializes a point structure. More...
#define | kRect3d_Init_(RECT, X, Y, Z, W, H, D)
| Initializes a rectangular cuboid structure. More...
#define | kRect_Init_(RECT, X, Y, W, H)
| Initializes a rectangle structure. More...
#define | kRotatedRect_Init_(RECT, XC, YC, W, H, A)
| Initializes a rotated rectangle structure. More...
#define | kStaticInitialized(SYMBOL)
| Indicates whether static initialization has completed for the specified type symbol. More...
#define | kStaticObj(TypeName_T)
| Declares a local "sobj" (static object) pointer variable and initializes it. More...
#define | kStaticOf(SYMBOL)
| Returns static data associated with the specified class symbol. More...
#define | kTest(EXPRESSION)
| Used within a kTry block to conditionally jump to the first error handling block (e.g. More...
#define | kTestArgs(EXPRESSION)
| Within a kTry block, throws kERROR_PARAMETER if the expression result is not kTRUE. More...
#define | kTestState(EXPRESSION)
| Within a kTry block, throws kERROR_STATE if the expression result is kFALSE. More...
#define | kTestTrue(EXPRESSION, STATUS)
| Within a kTry block, throws STATUS if the expression result is kFALSE. More...
#define | kThrow(EXPRESSION)
| Used within a kTry block to jump to the first error handling block (e.g. More...
#define | kTrace(TAG)
| Generates a trace event using the given tag (string literals only). More...
#define | kTry
| Opens a kTry error-checking block. More...
#define | kTypeOf(SYMBOL)
| Returns the kType object associated with the specified class, interface, or value symbol. More...
#define | kWarn(MESSAGE)
| Emits a custom compile-time warning message. More...
#define | kZero(VALUE)
| Sets all bits of a structure to zero. More...

## Typedefs
typedef kStatus(kCall * | kCallbackFx )(kPointer receiver, kPointer sender, void *args)
| Callback signature for a generic event handler. More...
typedef kBool(kCall * | kEqualsFx )(const void *item1, const void *item2)
| Callback signature to determine equality of two items. More...
typedef void(kCall * | kFunction )()
| Generic pointer to function.
typedef kSize(kCall * | kHashFx )(const void *item)
| Callback signature to determine hash code of an item. More...

## Functions
kBool | kEndianness_ShouldReverse (kEndianness endianness)
| Reports whether byte ordering must be reversed to be consistent with the current platform. More...
kBool | kIsError (kStatus status)
| Returns kTRUE if the given status value is not kOK. More...
void | kItemCopy (void *dest, const void *src, kSize size)
| Performs a small copy with minimal overhead. More...
void | kItemZero (void *dest, kSize size)
| Zero-initializes a small amount of memory with minimal overhead. More...
kBool | kSuccess (kStatus status)
| Returns kTRUE if the given expression value is kOK. More...