GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> MDB / V0-0-2 > mdb / rad750
#include <stdarg.h>
#include <PBS/WCT.h>
#include <MDB/MDB_macdefs.h>
Classes | |
struct | _MSG_MsgList |
List of messages used at run time. More... | |
struct | _MSG_FacList |
List of facilities used at run time. More... | |
Typedefs | |
typedef unsigned int | MSG_cb_ReportRtn (unsigned int code, WCT_time hack, const char *rtn, unsigned int nprm, va_list list) |
Signature for the MSG reporting routine. | |
typedef struct _MSG_MsgList | MSG_MsgList |
Typedef for struct _MSG_MsgList. | |
typedef struct _MSG_FacList | MSG_FacList |
Typedef for struct _MSG_FacList. | |
Functions | |
unsigned int | MSG_find (unsigned int code, const MSG_FacList **fdb, const MSG_MsgList **mdb) |
Return facility and message database entries corresponding to code. | |
void | MSG_insertFacility (const MSG_FacList *fac) |
Insert a new facility into the store. | |
void | MSG_removeFacility (const MSG_FacList *fac) |
Remove an existing facility from the store. | |
unsigned int | MSG_report (unsigned int code, WCT_time hack, const char *rtn, unsigned int nprm,...) |
Process a message reporting request. | |
void | MSG_setReportRtn (MSG_cb_ReportRtn *rtn) |
Set a new MSG_report() callback routine. |
CVS $Id: MDB_pubdefs.h,v 1.2 2011/03/24 20:31:59 apw Exp $
unsigned int MSG_find | ( | unsigned int | code, | |
const MSG_FacList ** | fdb, | |||
const MSG_MsgList ** | mdb | |||
) |
Return facility and message database entries corresponding to code.
code | (in ) Message code | |
fdb | (out) Facility descriptor | |
mdb | (out) Message descriptor |
0 | Database entry found | |
1 | Database entry not found |
References _MSG_FacList::frst, and _MSG_FacList::nmsg.
void MSG_insertFacility | ( | const MSG_FacList * | fac | ) |
Insert a new facility into the store.
fac | (in) Pointer to the facility. |
__attribute__((constructor))
which results in it being run either before the main routine starts up (typical for single-threaded host applications) or immediately after a module is loaded (typical for the multi-threaded VxWorks environment). This technique is really provided for C++ static constructors, but there's no reason not to take advantage of it.
Thus every message facility source file contains a little stub routine declared constructor
whose sole function is to call this routine with the address of the facility block.
References _MSG_FacList::ID.
void MSG_removeFacility | ( | const MSG_FacList * | fac | ) |
Remove an existing facility from the store.
fac | (in) Pointer to the facility. |
__attribute__((destructor))
which results in it being run either after the main routine completes (typical for single-threaded host applications) or a immediately before a module is unloaded (typical for the multi-threaded VxWorks environment). This technique is really provided for C++ static destructors, but there's no reason not to take advantage of it.
Thus every message facility source file contains a little stub routine declared destructor
whose sole function is to call this routine with the address of the facility block.
References _MSG_FacList::ID.
unsigned int MSG_report | ( | unsigned int | code, | |
WCT_time | hack, | |||
const char * | rtn, | |||
unsigned int | nprm, | |||
... | ||||
) |
Process a message reporting request.
code | (in) Message code to be reported | |
hack | (in) Wall clock time to be recorded with the meessage (note 1) | |
rtn | (in) Name of calling routine (note 2) | |
nprm | (in) Number of parameters that follow |
__func__
macro to fill in the routine name.code | Reflection of the first input argument, probably with "reported" bit set |
The packet is sent to an message task (in the multi-threaded case) where the message is formatted using the formatting string associated with the message code. The message task then calls all output processors in turn to do whatever it is they want to do with the information.
In the single-threaded case, the message processing occurs inline with the MSG_report() call.
void MSG_setReportRtn | ( | MSG_cb_ReportRtn * | rtn | ) |
Set a new MSG_report() callback routine.
rtn | (in) Pointer to the message reporting routine |