libcm/cmCtx.h

54 satır
2.2 KiB
C

//{
//(
// cmCtx_t is used to hold application supplied cmRpt_t, cmErr_t and
// other global values for easy distribution throughtout a cm based application.
//
// Most the libcm components need at least an application supplied cmRpt_t function
// to initialize their own internal cmErr_t error class. Likewise classes which
// use a cmLHeapH_t based internal heap manager require application wide memory
// manager configuration information. The cmCtx_t packages this information and
// allows it to be easily distributed. The applicaton and its constituent objects
// then need only maintain and pass pointers to a single cmCtx_t object to have access to
// all the global program information.
//)
#ifndef cmCtx_h
#define cmCtx_h
#ifdef __cplusplus
extern "C" {
#endif
//(
// cmCtx_t data type.
typedef struct
{
cmRpt_t rpt; // Application supplied global reporter. This reporter is also use by \ref err.
cmErr_t err; // Application error reporter which can be used to report errors prior to the client object being initialized to the point where it can use it's own cmErr_t.
unsigned guardByteCnt; // Guard byte count in use by \ref cmMallocDebug.h .
unsigned alignByteCnt; // Align byte count used by the \ref cmMallocDebug.h
unsigned mmFlags; // Initialization flags used by \ref cmMallocDebug.h.
void* userDefPtr; // Application defined pointer.
} cmCtx_t;
// cmCtx_t initialization function.
void cmCtxSetup(
cmCtx_t* ctx, // The cmCtx_t to initialize.
const cmChar_t* title, // The cmCtx_t error label. See cmErrSetup().
cmRptPrintFunc_t prtFunc, // The printFunc() to assign to the cmCtx_t.rpt.
cmRptPrintFunc_t errFunc, // The errFunc() to assign to cmCtx_t.rpt.
void* cbPtr, // Callback data to use with prtFunc() and errFunc().
unsigned guardByteCnt,// Guard byte count used to configure \ref cmMallocDebug.h
unsigned alignByteCnt,// Align byte count used to configure \ref cmMallocDebug.h
unsigned mmFlags // Initialization flags used to configure \ref cmMallocDebug.h
);
//)
//}
#ifdef __cplusplus
}
#endif
#endif