TrimRangeTestResult_ChipTrimDataStreamer_v1.cpp

00001 #include "../TrimRangeTestResult.h"
00002 #include "TrimRangeTestResult_ChipTrimDataStreamer_v1.h"
00003 
00004 using std::pair;
00005 using namespace Sct;
00006 
00007 namespace SctData {
00008 namespace IO {
00009 
00010 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00011 unsigned TrimRangeTestResult_ChipTrimDataStreamer_v1::s_version=1;
00012 
00013 TrimRangeTestResult_ChipTrimDataStreamer_v1::TrimRangeTestResult_ChipTrimDataStreamer_v1() throw() {}
00014 
00015 bool TrimRangeTestResult_ChipTrimDataStreamer_v1::inMap = IOManager::addToMap("SctData::TrimRangeTestResult::ChipTrimData",  auto_ptr<Streamer>(new TrimRangeTestResult_ChipTrimDataStreamer_v1()));
00016 
00017 
00018 shared_ptr<Streamable> TrimRangeTestResult_ChipTrimDataStreamer_v1::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00019     shared_ptr<Streamable> ad (new TrimRangeTestResult::ChipTrimData());
00020     read(in, *ad, manager);
00021     return ad;
00022 }
00023 
00024 void TrimRangeTestResult_ChipTrimDataStreamer_v1::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00025     const TrimRangeTestResult::ChipTrimData& chiptrim = dynamic_cast <const TrimRangeTestResult::ChipTrimData&>(ob);
00026     out << (int) chiptrim.channelData.size();
00027     for (unsigned i=0; i<chiptrim.channelData.size(); ++i){
00028     Stat<TrimRangeTestResult::TrimData> d=chiptrim.channelData.getAt(i);
00029     
00030     out << d.valid << d.value.p0 << d.value.p1;
00031     out << (int) d.value.graph.size();
00032     for (unsigned ipt=0; ipt<d.value.graph.size(); ++ipt){
00033         out << d.value.graph[ipt].first << d.value.graph[ipt].second;
00034     }
00035     }
00036 
00037 }
00038 
00039 void TrimRangeTestResult_ChipTrimDataStreamer_v1::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00040     TrimRangeTestResult::ChipTrimData& chiptrim = dynamic_cast <TrimRangeTestResult::ChipTrimData&>(ob);
00041 
00042     int size; in >> size; 
00043     chiptrim.channelData.resize(nChannelChip);
00044     for (unsigned i=0; i<nChannelChip; ++i){
00045     Stat<TrimRangeTestResult::TrimData>& d=chiptrim.channelData.modifyAt(i);
00046     in >> d.valid >> d.value.p0 >> d.value.p1;
00047     
00048     in >> size; d.value.graph.resize(size);
00049     for (int ipt=0; ipt<size; ++ipt){
00050         float first, second;
00051         in >> first; in >> second;
00052         d.value.graph[ipt]=pair<float,float>(first,second);
00053     }
00054     }
00055 }
00056 
00057 }
00058 } 
00059 

Generated on Mon Feb 6 14:01:36 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6