<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Atlas-C++: DebugBridge.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> </ul> </div> <h1>DebugBridge.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef DEBUG_BRIDGE_H</span> <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define DEBUG_BRIDGE_H</span> <a name="l00003"></a>00003 <span class="preprocessor"></span> <a name="l00004"></a>00004 <span class="preprocessor">#include <iostream></span> <a name="l00005"></a>00005 <span class="preprocessor">#include <string></span> <a name="l00006"></a>00006 <span class="preprocessor">#include <Atlas/Bridge.h></span> <a name="l00007"></a>00007 <a name="l00008"></a>00008 <span class="keyword">class </span>DebugBridge : <span class="keyword">public</span> Atlas::Bridge <a name="l00009"></a>00009 { <a name="l00010"></a>00010 <span class="keyword">public</span>: <a name="l00011"></a>00011 <a name="l00012"></a>00012 DebugBridge() <a name="l00013"></a>00013 { <a name="l00014"></a>00014 padding = <span class="stringliteral">""</span>; <a name="l00015"></a>00015 } <a name="l00016"></a>00016 <a name="l00017"></a>00017 <span class="keyword">virtual</span> ~DebugBridge() { } <a name="l00018"></a>00018 <a name="l00019"></a>00019 <span class="keyword">virtual</span> <span class="keywordtype">void</span> streamBegin() { <a name="l00020"></a>00020 std::cout << padding << <span class="stringliteral">"streamBegin"</span> << std::endl; <a name="l00021"></a>00021 addPadding(); <a name="l00022"></a>00022 } <a name="l00023"></a>00023 <span class="keyword">virtual</span> <span class="keywordtype">void</span> streamMessage() { <a name="l00024"></a>00024 std::cout << padding << <span class="stringliteral">"New Map"</span> << std::endl; <a name="l00025"></a>00025 addPadding(); <a name="l00026"></a>00026 } <a name="l00027"></a>00027 <span class="keyword">virtual</span> <span class="keywordtype">void</span> streamEnd() { <a name="l00028"></a>00028 removePadding(); <a name="l00029"></a>00029 std::cout << padding << <span class="stringliteral">"streamEnd"</span> << std::endl; <a name="l00030"></a>00030 } <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapMapItem(<span class="keyword">const</span> std::string& name) <a name="l00033"></a>00033 { <a name="l00034"></a>00034 std::cout << padding << name << <span class="stringliteral">" -> New Map"</span> << std::endl; <a name="l00035"></a>00035 addPadding(); <a name="l00036"></a>00036 } <a name="l00037"></a>00037 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapListItem(<span class="keyword">const</span> std::string& name) <a name="l00038"></a>00038 { <a name="l00039"></a>00039 std::cout << padding << name << <span class="stringliteral">" -> New List"</span> << std::endl; <a name="l00040"></a>00040 addPadding(); <a name="l00041"></a>00041 } <a name="l00042"></a>00042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapIntItem(<span class="keyword">const</span> std::string& name, <span class="keywordtype">long</span> i) <a name="l00043"></a>00043 { <a name="l00044"></a>00044 std::cout << padding << name << <span class="stringliteral">" -> Int: "</span> << i << std::endl; <a name="l00045"></a>00045 } <a name="l00046"></a>00046 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapFloatItem(<span class="keyword">const</span> std::string& name, <span class="keywordtype">double</span> d) <a name="l00047"></a>00047 { <a name="l00048"></a>00048 std::cout << padding << name << <span class="stringliteral">" -> Float: "</span> << d << std::endl; <a name="l00049"></a>00049 } <a name="l00050"></a>00050 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapStringItem(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& s) <a name="l00051"></a>00051 { <a name="l00052"></a>00052 std::cout << padding << name << <span class="stringliteral">" -> String: "</span> << s << std::endl; <a name="l00053"></a>00053 } <a name="l00054"></a>00054 <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapEnd() <a name="l00055"></a>00055 { <a name="l00056"></a>00056 removePadding(); <a name="l00057"></a>00057 std::cout << padding << <span class="stringliteral">"mapEnd"</span> << std::endl; <a name="l00058"></a>00058 } <a name="l00059"></a>00059 <a name="l00060"></a>00060 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listMapItem() <a name="l00061"></a>00061 { <a name="l00062"></a>00062 std::cout << padding << <span class="stringliteral">"New Map"</span> << std::endl; <a name="l00063"></a>00063 addPadding(); <a name="l00064"></a>00064 } <a name="l00065"></a>00065 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listListItem() <a name="l00066"></a>00066 { <a name="l00067"></a>00067 std::cout << padding << <span class="stringliteral">"New List"</span> << std::endl; <a name="l00068"></a>00068 addPadding(); <a name="l00069"></a>00069 } <a name="l00070"></a>00070 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listIntItem(<span class="keywordtype">long</span> i) <a name="l00071"></a>00071 { <a name="l00072"></a>00072 std::cout << padding << <span class="stringliteral">"Int: "</span> << i << std::endl; <a name="l00073"></a>00073 } <a name="l00074"></a>00074 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listFloatItem(<span class="keywordtype">double</span> d) <a name="l00075"></a>00075 { <a name="l00076"></a>00076 std::cout << padding << <span class="stringliteral">"Float: "</span> << d << std::endl; <a name="l00077"></a>00077 } <a name="l00078"></a>00078 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listStringItem(<span class="keyword">const</span> std::string& s) <a name="l00079"></a>00079 { <a name="l00080"></a>00080 std::cout << padding << <span class="stringliteral">"String: "</span> << s << std::endl; <a name="l00081"></a>00081 } <a name="l00082"></a>00082 <span class="keyword">virtual</span> <span class="keywordtype">void</span> listEnd() <a name="l00083"></a>00083 { <a name="l00084"></a>00084 removePadding(); <a name="l00085"></a>00085 std::cout << padding << <span class="stringliteral">"listEnd"</span> << std::endl; <a name="l00086"></a>00086 } <a name="l00087"></a>00087 <a name="l00088"></a>00088 <span class="keyword">protected</span>: <a name="l00089"></a>00089 <span class="keyword">virtual</span> <span class="keywordtype">void</span> addPadding() <a name="l00090"></a>00090 { <a name="l00091"></a>00091 padding += <span class="stringliteral">" "</span>; <a name="l00092"></a>00092 } <a name="l00093"></a>00093 <a name="l00094"></a>00094 <span class="keyword">virtual</span> <span class="keywordtype">void</span> removePadding() <a name="l00095"></a>00095 { <a name="l00096"></a>00096 padding.erase(padding.end() - 2, padding.end()); <a name="l00097"></a>00097 } <a name="l00098"></a>00098 <a name="l00099"></a>00099 std::string padding; <a name="l00100"></a>00100 }; <a name="l00101"></a>00101 <a name="l00102"></a>00102 <span class="preprocessor">#endif // DEBUG_BRIDGE_H</span> </pre></div></div> <HR> <P>Copyright 2000-2004 the respective authors.</P> <P>This document can be licensed under the terms of the GNU Free Documentation License or the GNU General Public License and may be freely distributed under the terms given by one of these licenses.</P>