00001 #include "../TrimRangeTestResult.h"
00002 #include "TrimRangeTestResult_ChipTrimDataStreamer_v1.h"
00003
00004 using namespace Sct;
00005
00006 namespace SctData {
00007 namespace IO {
00008
00009
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