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