00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _FunctionFactory_H_ 00015 #define _FunctionFactory_H_ 00016 00017 #include "pattern/Factory.h" 00018 00019 namespace hippodraw { 00020 00021 class FunctionBase; 00022 00031 class MDL_HIPPOPLOT_API FunctionFactory : public Factory <FunctionBase> 00032 { 00033 00034 private: 00035 00037 static FunctionFactory * s_instance; 00038 00040 FunctionFactory ( const FunctionFactory & ); 00041 00043 void initialize (); 00044 00045 protected: 00046 00049 FunctionFactory(); 00050 00051 public: 00052 00054 static FunctionFactory * instance (); 00055 00056 }; 00057 00058 } // namespace hippodraw 00059 00060 #endif // _FunctionFactory_H_