home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- ** **
- ** Module: Trace_Lib.c **
- ** **
- ** **
- ** Purpose: **
- ** **
- ** **
- ** **
- ** Copyright (C) 1992-1995 Apple Computer, Inc. All rights reserved. **
- ** **
- ** **
- ** Change Log: **
- ** **
- ** **
- *****************************************************************************/
- #include <stdio.h>
-
- #include "QD3D.h"
- #include "Escher_Trace_sys.h"
-
- #include "Trace_Lib.h"
-
- FILE *EgTraceFile = NULL;
-
- static void TraceHandler(
- EtTraceMessage *message);
-
-
- /*===========================================================================*\
- *
- * Routine: TraceString()
- *
- * Comments:
- *
- \*===========================================================================*/
-
- char *TraceString(
- EtTrace trace)
- {
- switch(trace) {
- case EcEntryTrace: return("ENTRY");
- case EcExitTrace: return("EXIT");
- case EcImportantTrace: return("IMPORTANT");
- case EcInterestingTrace: return("INTERESTING");
- case EcNotableTrace: return("NOTICE");
- case EcTrivialTrace: return("TRIVIA");
- default: return("????");
- }
- }
-
-
- /*===========================================================================*\
- *
- * Routine: ComponentString()
- *
- * Comments:
- *
- \*===========================================================================*/
-
- char *ComponentString(
- EtComponent component)
- {
- switch(component) {
- case EcSystemComponent: return("System");
- case EcGeometryComponent: return("Geometry");
- case EcUtilitiesComponent: return("Utilities");
- case EcIOComponent: return("IO");
- case EcRenderingComponent: return("Rendering");
- case EcGroupComponent: return("Group");
- case EcStyleComponent: return("Style");
- case EcViewComponent: return("View");
- case EcCameraComponent: return("Camera");
- case EcAttributeComponent: return("Attribute");
- default: return("????");
- }
- }
-
-
- /*===========================================================================*\
- *
- * Routine: InstallDefaultTraceHandler()
- *
- * Comments:
- *
- \*===========================================================================*/
-
- void InstallDefaultTraceHandler(
- void)
- {
- EgTraceFile = fopen("trace.output", "w+");
-
- EiTrace_Register(TraceHandler);
- }
-
-
- /*===========================================================================*\
- *
- * Routine: TraceHandler()
- *
- * Comments:
- *
- \*===========================================================================*/
-
- static void TraceHandler(
- EtTraceMessage *message)
- {
- char buf[512];
-
- sprintf(buf, "%s:%f:%s:%s:%s\n",
- TraceString(message->trace),
- (double) message->time.seconds,
- ComponentString(message->component),
- (message->functionName == NULL ? "" : message->functionName),
- (message->string == NULL ? "" : message->string));
-
- fputs(buf, stdout);
- if (EgTraceFile != NULL) {
- fputs(buf, EgTraceFile);
- }
- }
-
-