00001 #include "Sct/VersionNotSupportedException.h"
00002 #include "Sct/IoExceptions.h"
00003
00004 #include "../TrimRangeTestResult.h"
00005 #include "TrimRangeTestResultStreamer_v2.h"
00006
00007 #include <TF1.h>
00008 #include <vector>
00009
00010 using namespace Sct;
00011
00012 namespace SctData {
00013 namespace IO {
00014
00015
00016 unsigned TrimRangeTestResultStreamer_v2::s_version=2;
00017
00018 TrimRangeTestResultStreamer_v2::TrimRangeTestResultStreamer_v2() throw() {
00019
00020 }
00021
00022 bool TrimRangeTestResultStreamer_v2::inMap = IOManager::addToMap("SctData::TrimRangeTestResult", auto_ptr<Streamer>(new TrimRangeTestResultStreamer_v2()));
00023
00024 shared_ptr<Streamable> TrimRangeTestResultStreamer_v2::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00025 shared_ptr<Streamable> ad (new TrimRangeTestResult());
00026 read(in, *ad, manager);
00027 return ad;
00028 }
00029
00030 void TrimRangeTestResultStreamer_v2::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00031
00032
00033
00034 manager.writeImpl(out, ob, "SctData::TestResult");
00035
00036 const TrimRangeTestResult& mytest = dynamic_cast <const TrimRangeTestResult&>(ob);
00037
00038 out << (int) mytest.chipTrimData.size();
00039 for (unsigned int i = 0; i < mytest.chipTrimData.size(); ++i) {
00040 manager.writeImpl(out, *mytest.chipTrimData[i], false);
00041 }
00042
00043 out << (int) mytest.chipTrim.size();
00044 for (unsigned int i = 0; i < mytest.chipTrim.size(); ++i) {
00045 manager.writeImpl(out, *mytest.chipTrim[i], false);
00046 }
00047
00048 out << mytest.charge << mytest.type << mytest.algorithm;
00049 }
00050
00051 void TrimRangeTestResultStreamer_v2::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00052 manager.readImpl(in, ob, "SctData::TestResult");
00053
00054 TrimRangeTestResult& mytest = dynamic_cast < TrimRangeTestResult & >(ob);
00055
00056 int n = 0;
00057 in >> n;
00058 mytest.chipTrimData.resize(n);
00059 for (int i = 0; i<n; ++i) {
00060 mytest.chipTrimData[i] = shared_ptr<TrimRangeTestResult::ChipTrimData>(new TrimRangeTestResult::ChipTrimData() );
00061 manager.readImpl(in, const_cast<TrimRangeTestResult::ChipTrimData&>(*mytest.chipTrimData[i]), false);
00062 }
00063
00064 in >> n;
00065 mytest.chipTrim.resize(n);
00066 for (int i = 0; i<n; ++i) {
00067 mytest.chipTrim[i] = shared_ptr<TrimRangeTestResult::ChipTrim>(new TrimRangeTestResult::ChipTrim() );
00068 manager.readImpl(in, const_cast<TrimRangeTestResult::ChipTrim&>(*mytest.chipTrim[i]), false);
00069 }
00070
00071 in >> mytest.charge >> mytest.type >> mytest.algorithm;
00072 }
00073
00074
00075 }
00076 }
00077