00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef INTERFACE_IHISTOGRAMFACTORY_H
00011 #define INTERFACE_IHISTOGRAMFACTORY_H 1
00012
00013 #include <string>
00014
00015 #ifndef ANAPHE_NO_NAMESPACE
00016 namespace Anaphe {
00017 #endif
00018
00019 class IHistogram;
00020 class IHistogram1D;
00021 class IHistogram2D;
00022
00023
00024
00025
00026
00027
00028
00029
00030 class IHistogramFactory {
00031
00032 public:
00033 virtual ~IHistogramFactory() { ; }
00034
00035 public:
00039 virtual IHistogram1D * create1D( std::string title
00040 , int nBinsx, double xmin, double xmax
00041 , const int ID = 0) = 0;
00042
00043 virtual IHistogram2D * create2D(std::string title
00044 , int nBinsx, double xmin, double xmax
00045 , int nBinsy, double ymin, double ymax
00046 , const int ID = 0) = 0;
00047
00049 virtual void unregister(IHistogram * h) = 0;
00051 virtual void destroy(IHistogram * h) = 0;
00052
00053 };
00054
00055 #ifndef ANAPHE_NO_NAMESPACE
00056 };
00057 #endif
00058
00059 extern "C" {
00060 Anaphe::IHistogramFactory * createIHistogramFactory();
00061 }
00062
00063 #endif