home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 10 / ioProg_10.iso / soft / optima / samples.z / TimerMarker.wxc < prev    next >
Encoding:
Text File  |  1996-08-13  |  3.1 KB  |  146 lines

  1. Save Format v1.3
  2. @begin ClassFile "TimerMarker"
  3.  Exported 0;
  4.  
  5. @begin-code BaseClassList
  6.  
  7. public WObject
  8.  
  9. @end-code;
  10.  
  11.  @begin UserFunction "TimerMarker( char *functionName )"
  12.   GencodeSrcLine 18;
  13.   FunctionName "TimerMarker::TimerMarker( char *functionName )";
  14.  @end;
  15.  
  16.  @begin UserFunction "Prototype for TimerMarker( char *functionName )"
  17.   Private 1;
  18.   GencodeSrcLine 23;
  19.   FunctionName "TimerMarker::Prototype for TimerMarker( char *functionName )";
  20.  @end;
  21.  
  22.  @begin UserFunction "~TimerMarker()"
  23.   GencodeSrcLine 25;
  24.   FunctionName "TimerMarker::~TimerMarker()";
  25.  @end;
  26.  
  27.  @begin UserFunction "Prototype for ~TimerMarker()"
  28.   Private 1;
  29.   GencodeSrcLine 25;
  30.   FunctionName "TimerMarker::Prototype for ~TimerMarker()";
  31.  @end;
  32.  
  33.  @begin UserFunction "MarkTime( const char *message )"
  34.   GencodeSrcLine 33;
  35.   FunctionName "TimerMarker::MarkTime( const char *message )";
  36.  @end;
  37.  
  38.  @begin UserFunction "Prototype for MarkTime( const char *message )"
  39.   Private 1;
  40.   GencodeSrcLine 27;
  41.   FunctionName "TimerMarker::Prototype for MarkTime( const char *message )";
  42.  @end;
  43.  
  44.  @begin HPPPrefixBlock
  45. @begin-code HPPPrefix
  46.  
  47. // Declarations added here will be included at the top of the .HPP file
  48. #ifndef _DEBUG
  49.     #define TimeFunction(x)
  50. #else
  51.     #define TimeFunction(x) TimerMarker __timeMarker( __FUNCTION__ )
  52. #endif
  53.  
  54. @end-code;
  55.   GencodeSrcLine 11;
  56.  @end;
  57.  
  58.  @begin CPPPrefixBlock
  59. @begin-code CPPPrefix
  60.  
  61. // Code added here will be included at the top of the .CPP file
  62.  
  63. //  Include definitions for resources.
  64. #include "WRes.h"
  65.  
  66. #define MARKER_TAB_SIZE 8
  67. static int __markerIndent = 0;
  68.  
  69. @end-code;
  70.   GencodeSrcLine 11;
  71.  @end;
  72.  
  73.  @begin ClassContentsBlock
  74. @begin-code ClassContents
  75.  
  76.     private:
  77.         WDWord  _startTime, _endTime;
  78.  
  79. @end-code;
  80.   GencodeSrcLine 21;
  81.  @end;
  82.  
  83. @begin-code GeneratedClassContents
  84.  
  85.  
  86. @end-code;
  87.  
  88. @begin-code Code "TimerMarker::TimerMarker( char *functionName )"
  89.  
  90. @@CLASSNAME@::@CLASSNAME@( char *functionName )
  91. {
  92.     _startTime = WTimer::GetTickCount();
  93.        WDBG(( WTEXT("%*s%s{\n"),
  94.            __markerIndent * MARKER_TAB_SIZE, " ", functionName ));
  95.     __markerIndent++;
  96. }
  97.  
  98. @end-code;
  99.  
  100. @begin-code Code "TimerMarker::Prototype for TimerMarker( char *functionName )"
  101.  
  102.     public:
  103.         @@CLASSNAME@( char *functionName );
  104.  
  105. @end-code;
  106.  
  107. @begin-code Code "TimerMarker::~TimerMarker()"
  108.  
  109. @@CLASSNAME@::~@CLASSNAME@()
  110. {
  111.     _endTime = WTimer::GetTickCount();
  112.     __markerIndent--;
  113.     WDBG(( WTEXT("%*s} // %d ms\n"),
  114.            __markerIndent * MARKER_TAB_SIZE, " ",
  115.            _endTime - _startTime ));
  116. }
  117.  
  118. @end-code;
  119.  
  120. @begin-code Code "TimerMarker::Prototype for ~TimerMarker()"
  121.  
  122.     public:
  123.         ~@CLASSNAME@();
  124.  
  125. @end-code;
  126.  
  127. @begin-code Code "TimerMarker::MarkTime( const char *message )"
  128.  
  129. void @CLASSNAME@::MarkTime( const char *message )
  130. {
  131.     WDBG(( WTEXT("%*s%s (%d ms elapsed)\n"),
  132.            __markerIndent * MARKER_TAB_SIZE, " ",
  133.            message,
  134.            WTimer::GetTickCount() - _startTime  ));
  135. }
  136.  
  137. @end-code;
  138.  
  139. @begin-code Code "TimerMarker::Prototype for MarkTime( const char *message )"
  140.  
  141.     public:
  142.         void MarkTime( const char *message );
  143.  
  144. @end-code;
  145. @end;
  146.