00001 00028 #ifndef BDSWICPEDACCESSOR_H 00029 #define BDSWICPEDACCESSOR_H 00030 00031 #include <Validity/VldContext.h> 00032 #include <Validity/VldRange.h> 00033 00034 #include <BeamDataUtil/BeamMonSwicPeds.h> 00035 #include <DatabaseInterface/DbiResultPtr.h> 00036 00037 #include <vector> 00038 #include <map> 00039 00040 class UtilBlockedRunningAverageVector; 00041 00042 class BDSwicPedAccessor { 00043 00044 public: 00045 00046 BDSwicPedAccessor(); 00047 ~BDSwicPedAccessor(); 00048 00052 void AddDevice(const char* device_name, 00053 int minimum_sample_size=10); 00054 00057 bool SetSpillTime(VldContext vc); 00058 00062 int GetPeds(const char* device_name, 00063 std::vector<double> &mean, 00064 std::vector<double> &sigma) const; 00065 int GetPeds(const char* device_name, 00066 std::vector<double> &mean) const; 00067 private: 00068 00069 struct Device { 00070 UtilBlockedRunningAverageVector* channels; 00071 VldRange range; 00072 bool is_profile; 00073 Device() : channels(0), range(), is_profile(false) {} 00074 }; 00075 typedef std::map<std::string,Device> SwicMap; 00076 SwicMap fSwicMap; 00077 00078 DbiResultPtr<BeamMonSwicPeds>* fDRP; 00079 }; 00080 00081 #endif // BDSWICPEDACCESSOR_H
1.3.9.1