00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _edoStat_h
00029 #define _edoStat_h
00030
00031 #include <eoFunctor.h>
00032
00034
00035 template < typename D >
00036 class edoStatBase : public eoUF< const D&, void >
00037 {
00038 public:
00039
00040
00041 virtual void lastCall( const D& ) {}
00042 virtual std::string className() const { return "edoStatBase"; }
00043 };
00044
00045 template < typename D > class edoCheckPoint;
00046
00047 template < typename D, typename T >
00048 class edoStat : public eoValueParam< T >, public edoStatBase< D >
00049 {
00050 public:
00051 edoStat(T value, std::string description)
00052 : eoValueParam< T >(value, description)
00053 {}
00054
00055 virtual std::string className(void) const { return "edoStat"; }
00056
00057 edoStat< D, T >& addTo(edoCheckPoint< D >& cp) { cp.add(*this); return *this; }
00058
00059
00060 };
00061
00062
00064
00065 template < typename D >
00066 class edoDistribStat : public edoStat< D, std::string >
00067 {
00068 public:
00069 using edoStat< D, std::string >::value;
00070
00071 edoDistribStat(std::string desc)
00072 : edoStat< D, std::string >("", desc)
00073 {}
00074 };
00075
00076 #endif // !_edoStat_h