# Enums, types, function typedefs

## Typedefs

typedef void(* | CoroutineFnp )(void *)
typedef void(* | PostTDFunc )(cTransientDetection *, void *)
typedef void(* | PostADFunc )(cAccuracyDetection *, void *)
typedef int(* | cKSplit::CritFunc )(const cKSplit &, cKSplit::Grid &, int, double *)
typedef double(* | cKSplit::DivFunc )(const cKSplit &, cKSplit::Grid &, double, double *)
typedef void(* | DisplayStringNotifyFunc )(cModule *, bool, void *)
typedef int(* | CompareFunc )(cObject *a, cObject *b)
typedef void(* | RecordFunc )(void *, simtime_t, double, double)
typedef cModule *(* | ModuleCreateFunc )()
typedef cPar *(* | ParCreateFunc )()
typedef void(* | VoidDelFunc )(void *)
typedef void *(* | VoidDupFunc )(void *)
typedef double(* | MathFunc )(...)
typedef double(* | MathFuncNoArg )()
typedef double(* | MathFunc1Arg )(double)
typedef double(* | MathFunc2Args )(double, double)
typedef double(* | MathFunc3Args )(double, double, double)
typedef double(* | MathFunc4Args )(double, double, double, double)

## Typedef Documentation

typedef int(* CompareFunc)(cObject *a, cObject *b)

Prototype for functions that can be used by cQueue objects configured as priority queues to compare two objects.

Return values of CompareFunc should be

- greater than zero if a > b
- smaller than zero if a < b

typedef void(* CoroutineFnp)(void *)

| Prototype for functions that can be used with cCoroutine objects as coroutine bodies.

typedef int(* cKSplit::CritFunc)(const cKSplit &, cKSplit::Grid &, int, double *)`[inherited]`

| Prototype for cell split criterion functions used by cKSplit objects.

typedef void(* DisplayStringNotifyFunc)(cModule *, bool, void *)

| Prototype for callback functions that are used to notify graphical user interfaces about display string changes. Args: (sub)module which changed; immediate refresh wanted or not; inspector's data

typedef double(* cKSplit::DivFunc)(const cKSplit &, cKSplit::Grid &, double, double *)`[inherited]`

| Prototype for cell division criterion functions used by cKSplit objects.

typedef double(* MathFunc)(...)

| Prototype for mathematical functions that can be used in reverse Polish expressions (see ExprElem).

typedef double(* MathFunc1Arg)(double)

| Prototype for mathematical functions taking one argument that can be used in reverse Polish expressions (see ExprElem).

typedef double(* MathFunc2Args)(double, double)

| Prototype for mathematical functions taking two arguments that can be used in reverse Polish expressions (see ExprElem).

typedef double(* MathFunc3Args)(double, double, double)

| Prototype for mathematical functions taking three arguments that can be used in reverse Polish expressions (see ExprElem).

typedef double(* MathFunc4Args)(double, double, double, double)

| Prototype for mathematical functions taking four arguments that can be used in reverse Polish expressions (see ExprElem).

typedef double(* MathFuncNoArg)()

| Prototype for mathematical functions taking no arguments that can be used in reverse Polish expressions (see ExprElem).

typedef cModule*(* ModuleCreateFunc)()

| Prototype for functions that are called by cModuleType objects to create modules of a specific type.

typedef cPar*(* ParCreateFunc)()

| DEPRECATED. Prototype for functions that are called by cLinkType objects to create parameter objects for a link of a specific type.

typedef void(* PostADFunc)(cAccuracyDetection *, void *)

| Prototype for callback functions used by a cAccuracyDetection object.

typedef void(* PostTDFunc)(cTransientDetection *, void *)

| Prototype for callback functions used by a cTransientDetection object.

typedef void(* RecordFunc)(void *, simtime_t, double, double)

| Prototype for callback functions that are used to notify graphical user interfaces when values are recorded to an output vector (see cOutVector).

typedef void(* VoidDelFunc)(void *)

| Prototype for functions that are called by some objects (cPar, cLinkedList) to free up user-defined data structures.

typedef void*(* VoidDupFunc)(void *)

| Prototype for functions that are called by some objects (cPar, cLinkedList) to duplicate user-defined data structures.