MarkSpaceRatioTestResultStreamer_v1.cpp

00001 #include "MarkSpaceRatioTestResultStreamer_v1.h"
00002 
00003 using namespace Sct;
00004 
00005 namespace SctData {
00006     namespace IO {
00007 
00008 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00009 unsigned MarkSpaceRatioTestResultStreamer_v1::s_version=1;
00010 
00011     MarkSpaceRatioTestResultStreamer_v1::MarkSpaceRatioTestResultStreamer_v1() throw() {}
00012     
00013 bool MarkSpaceRatioTestResultStreamer_v1::inMap = IOManager::addToMap("SctData::MarkSpaceRatioTestResult",  auto_ptr<Streamer>(new MarkSpaceRatioTestResultStreamer_v1()));
00014     
00015     shared_ptr<Streamable> MarkSpaceRatioTestResultStreamer_v1::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError){
00016         boost::shared_ptr<Streamable> ad (new MarkSpaceRatioTestResult());
00017         read(in, *ad, manager);
00018         return ad;
00019     }
00020     
00021     void MarkSpaceRatioTestResultStreamer_v1::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00022         //Let superclass do its work
00023         manager.writeImpl(out, ob, "SctData::TestResult");
00024         
00025         //cout << "MarkSpaceRatioTestResultStreamer_v1 doing dynamic_cast" << endl;
00026         const MarkSpaceRatioTestResult& mytest = dynamic_cast<const MarkSpaceRatioTestResult&>(ob);
00027         out << mytest.getOptimum();
00028         out << mytest.getNPoints();
00029         for (unsigned i=0; i<mytest.getNPoints();++i){
00030           const MarkSpaceRatioTestResult::MsrPoint& p=mytest.getPoint(i);
00031           out << p.occ0 << p.occ1 << p.occ0flip << p.occ1flip << p.msr;
00032         }
00033     }
00034     
00035     void MarkSpaceRatioTestResultStreamer_v1::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00036         manager.readImpl(in, ob, "SctData::TestResult");
00037         
00038         MarkSpaceRatioTestResult& mytest = dynamic_cast<MarkSpaceRatioTestResult&>(ob);
00039         double optimum;
00040         in >> optimum;
00041         mytest.setOptimum(optimum);
00042         unsigned npoints;
00043         in >> npoints;
00044         for (unsigned i=0; i<npoints; ++i){
00045           MarkSpaceRatioTestResult::MsrPoint p;
00046           in >> p.occ0 >> p.occ1 >> p.occ0flip >> p.occ1flip >> p.msr;
00047           mytest.addPoint(p);
00048         }
00049     }
00050     } 
00051 }

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