Displayer.h

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 class TH1;
00009 
00010 using boost::shared_ptr;
00011 using std::string;
00012 
00013 namespace Sct {
00014     class Serializable;
00015 }
00016 
00017 namespace SctData {
00018     class DefectList;
00019 }
00020 
00021 class TCanvas;
00022 
00023 
00024 
00025 namespace SctDataDisplay {
00026  
00027 class DisplayInfo;
00028 
00029 
00035 class DisplayData {
00036  public:
00037   virtual ~DisplayData(){}
00038 };
00039 
00040 
00046 class Displayer {
00047 public:
00048   Displayer() {}
00053     virtual shared_ptr<DisplayData> display(shared_ptr<const Sct::Serializable> data, const DisplayInfo& info, std::ostream& os) = 0;
00054     
00055 protected:           
00059     static shared_ptr<TCanvas> createCanvas(string name, string title);
00060     
00064     static void divideCanvas(unsigned int n, TCanvas& canvas);
00065     
00069     void printDefectList(const SctData::DefectList& list, std::ostream& os);
00070 
00074     void displayHistogram(TH1& hist, std::string option="");
00078     void displayHistogram(boost::shared_ptr<TH1> hist, std::string option="");
00079 
00080 };
00081 
00082 
00086 class GenericDisplayer : public virtual Displayer {
00087 public:
00093     virtual bool canDisplay(const Sct::Serializable& ob) = 0;
00094 
00095 };
00096 
00097 }
00098 
00099 #endif //SCTDATADISPLAY_DISPLAYER_H

Generated on Mon Feb 6 14:01:19 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6