00001 #ifndef PROFILEDATA_H
00002 #define PROFILEDATA_H
00003
00004 #include <oh/core/HistogramData.h>
00005 #include <string>
00006 #include <vector>
00007
00008
00009
00010
00011
00012
00013 namespace oh
00014 {
00022 class ProfileData : public HistogramData<double> {
00023 public:
00024
00028 std::vector<double> bin_entries;
00029
00033 std::vector<double> statistics;
00034
00035
00036 static const ISType & type() {
00037 static const ISType type_ = ProfileData( ).ISInfo::type();
00038 return type_;
00039 }
00040
00041 ProfileData( )
00042 : HistogramData<double>( "ProfileData" )
00043 {
00044 initialize();
00045 }
00046
00047 ~ProfileData(){
00048
00049
00050
00051
00052 }
00053
00054 protected:
00055 ProfileData( const std::string & type )
00056 : HistogramData<double>( type )
00057 {
00058 initialize();
00059 }
00060
00061 void publishGuts( ISostream & out ){
00062 HistogramData<double>::publishGuts( out );
00063 out << bin_entries << statistics;
00064 }
00065
00066 void refreshGuts( ISistream & in ){
00067 HistogramData<double>::refreshGuts( in );
00068 in >> bin_entries >> statistics;
00069 }
00070
00071 private:
00072 void initialize()
00073 {
00074
00075
00076
00077
00078 }
00079
00080
00081
00082
00083
00084 };
00085
00086
00087
00088
00089 }
00090
00091 #endif // PROFILEDATA_H