00001
00002
00014 #ifndef _DataRepController_H_
00015 #define _DataRepController_H_
00016
00017 #include "pattern/libhippo.h"
00018
00019
00020 #include <string>
00021 #include <vector>
00022
00023 namespace hippodraw {
00024 class DataRep;
00025 class DataSource;
00026 class NTuple;
00027 class PlotterBase;
00028
00036 class MDL_HIPPOPLOT_API DataRepController
00037 {
00038
00039 private:
00040
00042 static DataRepController * s_instance;
00043
00046 std::vector< std::string > m_null_vector;
00047
00049 DataRepController ( const DataRepController & );
00050
00054 bool checkBindings ( const DataSource * tuple,
00055 const std::vector < std::string > & bindings ) const;
00056
00057 protected:
00058
00061 DataRepController();
00062
00063 public:
00064
00066 static DataRepController * instance ();
00067
00069 ~DataRepController();
00070
00073 const std::vector< std::string > &
00074 bindingOptions ( const std::string & name );
00075
00078 const std::vector< std::string > &
00079 bindingOptions ( DataRep * rep );
00080
00083 const std::vector < std::string > & names () const;
00084
00089 DataRep * createDataRep ( const std::string & name );
00090
00096 DataRep *
00097 createDataRep ( const std::string & name,
00098 const DataSource * ntuple,
00099 const std::vector< std::string > & bindings ) const;
00100
00103 void setAxisBindings ( DataRep * rep,
00104 const DataSource * ntuple,
00105 const std::vector< std::string > & bindings ) const;
00106
00114 void changeDataSource ( DataRep * rep,
00115 const DataSource * tuple );
00116
00117 };
00118
00119 }
00120
00121 #endif // _DataRepController_H_