00001 #include "MarkSpaceRatioTestResultStreamer_v1.h"
00002
00003 using namespace Sct;
00004
00005 namespace SctData {
00006 namespace IO {
00007
00008
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
00023 manager.writeImpl(out, ob, "SctData::TestResult");
00024
00025
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 }