2015-11-16 19:59:27 +00:00
//( { file_desc:"Global application context record." kw[base] }
//
2012-10-30 03:52:39 +00:00
// cmCtx_t is used to hold application supplied cmRpt_t, cmErr_t and
// other global values for easy distribution throughtout a cm based application.
//
2012-11-06 21:19:00 +00:00
// Most the libcm components need at least an application supplied cmRpt_t function
2012-10-30 03:52:39 +00:00
// 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
2012-11-06 21:19:00 +00:00
// all the global program information.
2012-10-30 03:52:39 +00:00
//)
# ifndef cmCtx_h
# define cmCtx_h
# ifdef __cplusplus
extern " C " {
# endif
//(
// cmCtx_t data type.
2012-11-06 21:19:00 +00:00
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 ;
2012-10-30 03:52:39 +00:00
// cmCtx_t initialization function.
void cmCtxSetup (
2012-11-06 21:19:00 +00:00
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
2012-10-30 03:52:39 +00:00
) ;
//)
2015-11-16 19:59:27 +00:00
2012-10-30 03:52:39 +00:00
# ifdef __cplusplus
}
# endif
# endif