00001 00008 #ifndef __FLOATFUNBASE_H 00009 #define __FLOATFUNBASE_H 00010 00011 #ifndef __NAMEDO_H 00012 #include "jbltools/sfh/NamedO.h" 00013 #endif /* #ifndef __NAMEDO_H */ 00014 00015 #include "Float_FF.h" 00016 00017 class FillIterator; 00018 00019 // Class FloatFun 00021 00051 class FloatFun: public NamedO { 00052 public: 00053 // Constructors 00055 explicit FloatFun (const char *name_ = "?" 00056 ) 00057 : NamedO (name_) {} 00059 explicit FloatFun (const std::string& name_ 00060 ) 00061 : NamedO (name_) {} 00063 FloatFun (const std::string& name_, 00064 const std::string& definition_ 00065 ) 00066 : NamedO (name_, definition_) {} 00067 00069 virtual Float_FF operator() () const = 0; 00071 virtual void destroy() { delete this; } 00073 virtual const FillIterator *getIterator() const { return 0; } 00074 00076 00080 static FloatFun *getObject (const std::string& name 00081 ) { 00082 return NamedO::getObject<FloatFun>(name); 00083 } 00084 00086 00090 static FloatFun *getObject (const char * name 00091 ) { 00092 return NamedO::getObject<FloatFun>(name); 00093 } 00094 protected: 00096 virtual ~FloatFun() {}; 00097 }; 00098 00099 #endif /* #ifndef __FLOATFUNBASE_H */