00001 #ifndef SCTDATADISPLAY_DISPLAYMANAGER_H
00002 #define SCTDATADISPLAY_DISPLAYMANAGER_H
00003
00004 #include <boost/shared_ptr.hpp>
00005 #include <map>
00006 #include <string>
00007 #include <vector>
00008
00009 using std::map;
00010 using std::vector;
00011 using std::string;
00012 using boost::shared_ptr;
00013
00014 namespace Sct {
00015 class Serializable;
00016 }
00017
00018 namespace SctDataDisplay {
00019
00020 class Displayer;
00021 class GenericDisplayer;
00022 class DisplayInfo;
00023 class DisplayData;
00024
00029 class DisplayManager {
00030 public:
00034 static DisplayManager& instance();
00035
00040 static bool addToMap(string className, shared_ptr<Displayer> displayer);
00041
00046 static shared_ptr<DisplayData> display(shared_ptr<const Sct::Serializable> ob, const DisplayInfo& info, std::ostream& os);
00047
00048
00054 static bool addGeneric(shared_ptr<GenericDisplayer> generic);
00055
00059 static bool batchMode();
00063 static void setBatchMode(bool b=true);
00067 static void OutputCanvases();
00068 private:
00069 DisplayManager();
00070 map<string, shared_ptr<Displayer> > displayerMap;
00071 vector<shared_ptr<GenericDisplayer> > genericList;
00072 bool m_batchMode;
00073 };
00074
00075 }
00076
00077 #endif //SCTDATADISPLAY_DISPLAYMANAGER_H