Atlas-C++
DebugBridge.h
00001 #ifndef DEBUG_BRIDGE_H
00002 #define DEBUG_BRIDGE_H
00003 
00004 #include <iostream>
00005 #include <string>
00006 #include <Atlas/Bridge.h>
00007 
00008 class DebugBridge : public Atlas::Bridge
00009 {
00010 public:
00011 
00012     DebugBridge()
00013     {
00014         padding = "";
00015     }
00016 
00017     virtual ~DebugBridge() { }
00018 
00019     virtual void streamBegin() {
00020         std::cout << padding << "streamBegin" << std::endl;
00021         addPadding();
00022     }
00023     virtual void streamMessage() {
00024         std::cout << padding << "New Map" << std::endl;
00025         addPadding();
00026     }
00027     virtual void streamEnd() {
00028         removePadding();
00029         std::cout << padding << "streamEnd" << std::endl;
00030     }
00031     
00032     virtual void mapMapItem(const std::string& name)
00033     {
00034         std::cout << padding << name << " -> New Map" << std::endl;
00035         addPadding();
00036     }
00037     virtual void mapListItem(const std::string& name)
00038     {
00039         std::cout << padding << name << " -> New List" << std::endl;
00040         addPadding();
00041     }
00042     virtual void mapIntItem(const std::string& name, long i)
00043     {
00044         std::cout << padding << name << " -> Int: " << i << std::endl;
00045     }
00046     virtual void mapFloatItem(const std::string& name, double d)
00047     {
00048         std::cout << padding << name << " -> Float: " << d << std::endl;
00049     }
00050     virtual void mapStringItem(const std::string& name, const std::string& s)
00051     {
00052         std::cout << padding << name << " -> String: " << s << std::endl;
00053     }
00054     virtual void mapEnd()
00055     {
00056         removePadding();
00057         std::cout << padding << "mapEnd" << std::endl;
00058     }
00059     
00060     virtual void listMapItem()
00061     {
00062         std::cout << padding << "New Map" << std::endl;
00063         addPadding();
00064     }
00065     virtual void listListItem()
00066     {
00067         std::cout << padding << "New List" << std::endl;
00068         addPadding();
00069     }
00070     virtual void listIntItem(long i)
00071     {
00072         std::cout << padding << "Int: " << i << std::endl;
00073     }
00074     virtual void listFloatItem(double d)
00075     {
00076         std::cout << padding << "Float: " << d << std::endl;
00077     }
00078     virtual void listStringItem(const std::string& s)
00079     {
00080         std::cout << padding << "String: " << s << std::endl;
00081     }
00082     virtual void listEnd()
00083     {
00084         removePadding();
00085         std::cout << padding << "listEnd" << std::endl;
00086     }
00087 
00088 protected:
00089     virtual void addPadding()
00090     {
00091         padding += "  ";
00092     }
00093 
00094     virtual void removePadding()
00095     {
00096         padding.erase(padding.end() - 2, padding.end());
00097     }
00098 
00099     std::string padding;
00100 };
00101 
00102 #endif // DEBUG_BRIDGE_H

Copyright 2000-2004 the respective authors.

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.