Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

TrimRangeTestResult_ChipTrimDataStreamer_v1.cpp

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

Generated on Thu Jul 15 09:51:01 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5