errdbg.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:7k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef _ERRDBG_H_
  36. #define _ERRDBG_H_
  37. extern const char* g_pDebugOutLevels[];
  38. extern const BOOL  g_bDebugOutDefaults[];
  39. #if defined(_WINDOWS) || defined(_OPENWAVE)
  40. #define VSNPRINTF_SUPPORT
  41. #endif
  42. #ifdef VSNPRINTF_SUPPORT
  43. #include "hlxclib/stdio.h"
  44. inline int debug_out_sprintf(char* pBuffer, const char* pFormatString, ...)
  45. {
  46.     va_list argptr;
  47.     va_start(argptr, pFormatString);
  48.     int nCharsWritten = _vsnprintf(pBuffer, 2048, pFormatString, argptr);
  49.     pBuffer[2047] = '';
  50.     va_end(argptr);
  51.     return nCharsWritten;
  52. }
  53. #define DEBUG_OUT_SPRINTF debug_out_sprintf
  54. #else
  55. #define DEBUG_OUT_SPRINTF sprintf /* Flawfinder: ignore */
  56. #endif // VSNPRINTF_SUPPORT
  57. #if defined(HELIX_FEATURE_DBG_LOG) && !defined(GOLD)
  58. #include "hxerror.h"
  59. #define DEBUG_OUT(x, l, y) {
  60.     char* s;
  61.     s = new char[2048];
  62.     if(s){                                      
  63.     DEBUG_OUT_SPRINTF y;
  64.     x ? x->Report(HXLOG_DEBUG, 0, l, s, 0) : 0;
  65.     delete [] s;
  66.     } 
  67.    }
  68. #else
  69. #define DEBUG_OUT(x, l, y)
  70. #endif
  71. #ifdef _DEBUG
  72. #define DEBUG_OUTF(x, y) {
  73.     char* s;
  74.     FILE* f1;
  75.     s = new char[2048];
  76.     if(s){                                      
  77.     DEBUG_OUT_SPRINTF y;
  78.     f1 = (x)?(::fopen(x, "a+")):(NULL);
  79.     (f1)?(::fprintf(f1, s), ::fclose(f1)):(0);
  80.     delete [] s;
  81.             } 
  82.        }
  83. #else
  84. #define DEBUG_OUTF(x, y)
  85. #endif
  86. #ifdef _DEBUG
  87. #ifndef DEBUG_OUTF_IDX_COL_WIDTH
  88. #define DEBUG_OUTF_IDX_COL_WIDTH    20
  89. #endif // DEBUG_OUTF_IDX_COL_WIDTH
  90. #define DEBUG_OUTF_IDX(idx, x, y) {
  91.     char* s;
  92.     char* p_dbgx;
  93.     FILE* f1_dbgx;
  94.     int i_dbgx = (idx > 0)?(DEBUG_OUTF_IDX_COL_WIDTH * idx):0;
  95.     p_dbgx = s = new char[2048 + i_dbgx];
  96.     if(s){ 
  97.     if (i_dbgx < 1024)
  98. for (; i_dbgx > 0; i_dbgx--)
  99.     *(s++) = ' ';
  100.     DEBUG_OUT_SPRINTF y;
  101.     f1_dbgx = (x)?(::fopen(x, "a+")):(NULL);
  102.     (f1_dbgx)?(::fprintf(f1_dbgx, p_dbgx), ::fclose(f1_dbgx)):(0);
  103.     delete [] p_dbgx;
  104.     } 
  105.        }
  106. #else
  107. #define DEBUG_OUTF_IDX(idx, x, y)
  108. #endif
  109. /* Debug Levels */
  110. #define DOL_GENERIC                 0
  111. #define DOL_TRANSPORT               1
  112. #define DOL_ASM                     2
  113. #define DOL_BWMGR                   3
  114. #define DOL_TRANSPORT_EXTENDED      4
  115. #define DOL_REALAUDIO               5
  116. #define DOL_REALAUDIO_EXTENDED      6
  117. #define DOL_REALVIDEO               7
  118. #define DOL_REALPIX                 8
  119. #define DOL_REALPIX_EXTENDED        9
  120. #define DOL_JPEG                   10
  121. #define DOL_JPEG_EXTENDED          11
  122. #define DOL_GIF                    12
  123. #define DOL_GIF_EXTENDED           13
  124. #define DOL_FLASH                  14
  125. #define DOL_FLASH_EXTENDED         15
  126. #define DOL_SMIL                   16
  127. #define DOL_SMIL_EXTENDED          17
  128. #define DOL_TURBOPLAY              18
  129. #define DOL_TURBOPLAY_EXTENDED     19
  130. #define DOL_SITE                   20
  131. #define DOL_AUTOUPDATE             21
  132. #define DOL_RECONNECT              22
  133. #define DOL_AUTHENTICATION         23
  134. #define DOL_CORELOADTIME           24
  135. #define DOL_RTSP                   25
  136. #define DOL_STREAMSOURCEMAP        26
  137. #define DOL_REALEVENTS             27
  138. #define DOL_REALEVENTS_EXTENDED    28
  139. #define DOL_BUFFER_CONTROL         29
  140. #define NUM_DOL_CODES              30 // Make sure this is updated when
  141.                                       // new user codes are added
  142. #ifdef ERRDBG_DEFINE_CONSTS
  143. /* Name of Each Debug Level */
  144. const char* g_pDebugOutLevels[] = {
  145.     "Generic Messages",
  146.     "Transport Basic",
  147.     "ASM Subscriptions",
  148.     "Bandwidth Manager",
  149.     "Transport Bandwidth Reports",
  150.     "RealAudio Renderer",
  151.     "RealAudio Renderer Extended",
  152.     "RealVideo Renderer",
  153.     "RealPix Renderer",
  154.     "RealPix Renderer Extended",
  155.     "JPEG Renderer",
  156.     "JPEG Renderer Extended",
  157.     "GIF Renderer",
  158.     "GIF Renderer Extended",
  159.     "Flash Renderer",
  160.     "Flash Renderer Extended",
  161.     "SMIL Renderer",
  162.     "SMIL Renderer Extended",
  163.     "TurboPlay",
  164.     "TurboPlay Extended",
  165.     "Site Info",
  166.     "AutoUpdate",
  167.     "Reconnect and Redirect",
  168.     "Authentication",
  169.     "Core Load Time",
  170.     "RTSP",
  171.     "Stream and Source",
  172.     "RealEvents Renderer",
  173.     "RealEvents Renderer Extended",
  174.     "Buffer Control",
  175.     0
  176. };
  177. /*
  178.  * Debug Level Default Status
  179.  * 
  180.  * Set to TRUE if this debug level should default to ON in the statistics pane.
  181.  * Set this to false if you output a lot of data at a particular debug level.
  182.  */
  183. const BOOL g_bDebugOutDefaults[] = {
  184.     TRUE,       // Generic Messages
  185.     TRUE,       // Transport Basic
  186.     TRUE,       // ASM Subscriptions
  187.     TRUE,       // Bandwidth Manager
  188.     FALSE,      // Transport Bandwidth Reports
  189.     TRUE,       // RealAudio Renderer
  190.     FALSE,      // RealAudio Renderer Extended
  191.     TRUE,       // RealVideo Renderer
  192.     TRUE,       // RealPix Renderer
  193.     FALSE,      // RealPix Renderer Extended
  194.     TRUE,       // JPEG Renderer
  195.     FALSE,      // JPEG Renderer Extended
  196.     TRUE,       // GIF Renderer
  197.     FALSE,      // GIF Renderer Extended
  198.     TRUE,       // Flash Renderer
  199.     FALSE,      // Flash Renderer Extended
  200.     TRUE,       // SMIL Renderer
  201.     FALSE,      // SMIL Renderer Extended
  202.     FALSE,      // TurboPlay
  203.     FALSE,      // TurboPlay Extended
  204.     FALSE,      // Site Info
  205.     FALSE,      // AutoUpdate
  206.     FALSE,      // Reconnect and Redirect
  207.     FALSE,      // Authentication
  208.     FALSE,      // Core Load Time
  209.     FALSE,      // RTSP
  210.     FALSE,      // Stream and Source Info
  211.     TRUE,       // RealEvents Renderer
  212.     FALSE,      // RealEvents Renderer Extended
  213.     0
  214. };
  215. #endif
  216. #endif /*_ERRDBG_H_*/