00001 /* -*- mode: c++ -*- */ 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 class DataRep; 00024 class DataSource; 00025 class NTuple; 00026 class PlotterBase; 00027 00035 class MDL_HIPPOPLOT_API DataRepController 00036 { 00037 00038 private: 00039 00041 static DataRepController * s_instance; 00042 00045 std::vector< std::string > m_null_vector; 00046 00048 DataRepController ( const DataRepController & ); 00049 00053 bool checkBindings ( const DataSource * tuple, 00054 const std::vector < std::string > & bindings ) const; 00055 00056 protected: 00057 00060 DataRepController(); 00061 00062 public: 00063 00065 static DataRepController * instance (); 00066 00068 ~DataRepController(); 00069 00072 const std::vector< std::string > & 00073 bindingOptions ( const std::string & name ); 00074 00077 const std::vector< std::string > & 00078 bindingOptions ( DataRep * rep ); 00079 00084 DataRep * createDataRep ( const std::string & name ); 00085 00091 DataRep * 00092 createDataRep ( const std::string & name, 00093 const DataSource * ntuple, 00094 const std::vector< std::string > & bindings ) const; 00095 00098 void setAxisBindings ( DataRep * rep, 00099 const DataSource * ntuple, 00100 const std::vector< std::string > & bindings ) const; 00101 00109 void changeDataSource ( DataRep * rep, const DataSource * tuple ); 00110 00111 }; 00112 00113 #endif // _DataRepController_H_