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

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.