TrimRangeTestResultStreamer_v2.cpp

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 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00016 unsigned TrimRangeTestResultStreamer_v2::s_version=2;
00017 
00018 TrimRangeTestResultStreamer_v2::TrimRangeTestResultStreamer_v2() throw() {
00019   // std::cout << "v2 ... " << getVersion() << endl;
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     //cout << "TrimRangeTestResultIS::publishGuts" << endl;
00032     //Let superclass do its work
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 

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