00001 #ifndef SCTDATADISPLAY_DISPLAYER_H 00002 #define SCTDATADISPLAY_DISPLAYER_H 00003 00004 #include <boost/shared_ptr.hpp> 00005 #include <string> 00006 #include <iostream> 00007 00008 using boost::shared_ptr; 00009 using std::string; 00010 00011 namespace Sct { 00012 class Serializable; 00013 } 00014 00015 namespace SctData { 00016 class DefectList; 00017 } 00018 00019 class TCanvas; 00020 00021 00022 00023 namespace SctDataDisplay { 00024 00025 class DisplayInfo; 00026 00027 00033 class DisplayData { 00034 }; 00035 00036 00042 class Displayer { 00043 public: 00044 Displayer() {} 00049 virtual shared_ptr<DisplayData> display(shared_ptr<const Sct::Serializable> data, const DisplayInfo& info, std::ostream& os) = 0; 00050 00051 protected: 00055 static shared_ptr<TCanvas> createCanvas(string name, string title); 00056 00060 static void divideCanvas(unsigned int n, TCanvas& canvas); 00061 00065 void printDefectList(const SctData::DefectList& list, std::ostream& os); 00066 00067 }; 00068 00069 00073 class GenericDisplayer : public virtual Displayer { 00074 public: 00080 virtual bool canDisplay(const Sct::Serializable& ob) = 0; 00081 00082 }; 00083 00084 } 00085 00086 #endif //SCTDATADISPLAY_DISPLAYER_H