Exemplo n.º 1
0
/*
 *  ======== write8 =========
 */
Void LoggerSys_write8(LoggerSys_Object *obj, Log_Event evt,
                      Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4,
                      IArg a5, IArg a6, IArg a7, IArg a8)
{
    Log_EventRec evrec;

    if (!obj->enabled) {
        return;
    }

    LoggerSys_TimestampProxy_get64(&evrec.tstamp);

    evrec.serial = 0;
    evrec.evt = Types_makeEvent(Log_getEventId(evt), mid);
    evrec.arg[0] = a1;
    evrec.arg[1] = a2;
    evrec.arg[2] = a3;
    evrec.arg[3] = a4;
    evrec.arg[4] = a5;
    evrec.arg[5] = a6;
    evrec.arg[6] = a7;
    evrec.arg[7] = a8;

    Log_doPrint(&evrec);
}
Exemplo n.º 2
0
/*
 *  ======== LoggerBuf_flush ========
 */
Void LoggerBuf_flush(LoggerBuf_Object *obj)
{
    Int nEntries;
    Log_EventRec evtRec;
    
    /* 'counter' is the maximum number of entries we want to print. Otherwise,
     * we could end up in an infinite loop if events are being generated
     * faster than they are being printed.
     */
    Int counter = obj->numEntries;
    
    for (;;) {
        nEntries = LoggerBuf_getNextEntry(obj, &evtRec);
        if (counter == 0 || nEntries == 0) {
            break;
        }
        else {
            if (nEntries != -1) {
                Log_doPrint(&evtRec);
                counter--;
            }
        }
    }
}